#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int partition(vector<int>& arr, int l, int r) {
int temp = arr[l];
int j = l;
for (int i = l + 1; i <= r; i++) {
if (arr[i] < temp) {
swap(arr[j + 1], arr[i]);
j++;
}
}
swap(arr[l], arr[j]);
return j;
}
void quicksort(vector<int>& arr,int l,int r) {
if (l >= r) return;
int p = partition(arr, l, r);
quicksort(arr, l, p - 1);
quicksort(arr, p + 1, r);
}
void print_arr(vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
vector<int> arr = { 11,9,3,20,56,32 };
cout << "排序前:" << endl;
print_arr(arr);
quicksort(arr,0,arr.size()-1);
cout << "排序后:" << endl;
print_arr(arr);
system("pause");
return 0;
}