快速排序
这篇的快速排序是以第一个元素为基准
#include <iostream>
using namespace std;
int arr[1001];
void quick_sort(int front, int rear){
if(front >= rear) return;
int q = arr[front], i = front, j = rear;
while(i < j){
while(i < j && arr[j] > q) j--; //这里用 i < j 来防止i > j
arr[i] = arr[j];
while(i < j && arr[i] < q) i++; //
arr[j] = arr[i];
}
arr[i] = q;
quick_sort(front, i-1);
quick_sort(i+1, rear);
}
int main(){
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >> arr[i];
quick_sort(0, n-1);
for(int i = 0; i < n; i++) cout << arr[i] << " ";
cout << endl;
}