快速排序
#include
#include
using namespace std;
int partition(vector &arr, int left, int right){
int pivot = arr[left], i = left, j = right;
while(i < j){
while(j > i && arr[j] >= pivot)
j--;
if(j > i)
swap(arr[i], arr[j]);
while(i < j && arr[i] <= pivot)
i++;
if(i < j)
swap(arr[i], arr[j]);
}
return i;
}
void quickSort(vector &arr, int left, int right){
if(left < right){
int pivot = partition(arr, left, right);
quickSort(arr, left, pivot - 1);
quickSort(arr, pivot + 1, right);
}
}
int main(){
vector arr{10, 9, 7, 8, 6, 5, 2, 4, 3, 1};
quickSort(arr, 0, arr.size() - 1);
for(auto each : arr)
cout << each << " ";
cout << endl;
return 0;
}