标签:alt pause targe swa 快速排序 算法 代码 lan 行数据
快速排序的分区过程如下所示,从左到右依次遍历数组,如遇到小于 pivot 的元素,则进行数据交换 ,否则继续往前进行,最后再放置 pivot。
代码1:
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 void Quick_Sort(vector<int> &data, int left, int right) 6 { 7 if (left < right) 8 { 9 int i = left, j = left; 10 int pivot = data[right]; 11 12 for (j = left; j < right; j++) 13 { 14 if (data[j] < pivot) 15 { 16 swap(data[i], data[j]); 17 i++; 18 } 19 } 20 data[j] = data[i]; 21 data[i] = pivot; 22 Quick_Sort(data, left, i - 1); 23 Quick_Sort(data, i + 1, right); 24 } 25 } 26 27 int main() 28 { 29 vector<int> vec; 30 int n; 31 cin >> n; 32 for (int i = 0; i < n; i++) 33 { 34 int a; 35 cin >> a; 36 vec.push_back(a); 37 } 38 cout << "排序前:"; 39 for (auto c : vec) 40 cout << c << " "; 41 cout << endl; 42 Quick_Sort(vec, 0, vec.size() - 1); 43 cout << "排序后:"; 44 for (auto c: vec) 45 cout << c << " "; 46 system("pause"); 47 return 0; 48 }
标签:alt pause targe swa 快速排序 算法 代码 lan 行数据
原文地址:https://www.cnblogs.com/sunbines/p/10605546.html