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 }