#include<stdio.h> //开一个足够大的数 int n; int q[100010]; void quick_sort(int q[],int l,int r) { if(l>=r) return;//左边界和右边界 int i=l-1,j=r+1,x=q[l + r>>1];//此处x=q[l+r>>1]是取数组中间值的意思 while(i<j) { do i++; while (q[i] < x); do j--; while (q[j] > x); if(i<j){ int t=q[i]; q[i]=q[j]; q[j]=t; } 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; }
02-02
7527
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-09
666
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交