完整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; }