快排代码

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 class Solution{
 6 public:
 7     void quick_sort(vector<int>& arr, int l, int r)
 8     {
 9         if(l>r) return;
10 
11         int i=l, j=r+1;
12 
13         while(i!=j)
14         {
15             while(arr[++i]<arr[l] && i<r);
16             while(arr[--j]>arr[l] && j>l);
17             if(i >= j) break;
18             swap(arr[i], arr[j]);
19         }
20         swap(arr[l],arr[j]);
21 
22         quick_sort(arr, l, j-1);
23         quick_sort(arr, j+1, r);
24     }
25 
26     void print_vector(vector<int>& arr)
27     {
28         for(auto i:arr) cout << i <<" ";
29         cout << endl;
30     }
31 };
32 
33 int main()
34 {
35     Solution sol;
36 
37     vector<int> arr = {3,2,4,1,5,6,7,0,9,8};
38 
39     sol.quick_sort(arr, 0, arr.size()-1);
40     sol.print_vector(arr);
41 
42     return 0;
43 }
View Code
原文地址:https://www.cnblogs.com/ya-cpp/p/10616038.html