完整c++代码,以及测试代码,直接拿去用!!!
void quick_sort(int q[], int l, int r);
//函数接口,参数1 数组首地址,参数2 排序数组起始元素,参数3 排序数组结束元素
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e5 + 10;
int n, q[N];
void quick_sort(int q[], int l, int r){
if(l >= r) return;
int x = q[(l + r) / 2], i = l - 1, j = r + 1;
while(i < j){ //划分区间,使i左边的数均小于x,j右边的数均大于x
do ++i; while(q[i] < x);
do --j; while(q[j] > x);
if(i < j) swap(q[i], q[j]);
}
quick_sort(q, l, j), quick_sort(q, j + 1, r);
}
int main(){
scanf("%d", &n);
for(int i = 0; i < n; ++i) scanf("%d", q + i);
quick_sort(q, 0, n - 1);
for(int i = 0; i < n; ++i) printf("%d ", q[i]);
return 0;
}