#include<stdio.h>
void xchg(int &b,int &c)
{
int t;
t=b; b=c; c=t;
}
int findpoit(int *a,int l,int r)
{
int p=l;
while(l<r)
{
while(a[r]>=a[p]&&p<r)r--;
xchg(a[r],a[p]);
while(a[l]<=a[p]&&l<p)l++;
xchg(a[l],a[p]);
}
return p;
}
void qsort(int *a,int l,int r)
{
if(l>=r)return ;
int p=findpoit(a,l,r);
qsort(a,l,p);
qsort(a,p+1,r);
}
int main()
{
int n,i,a[1000];
while(scanf("%d",&n)>0)
{
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
qsort(a,1,n);
for(i=1;i<=n;i++)
printf("%d ",a[i]);
printf("\n");
}
}
快速排序模板
最新推荐文章于 2021-08-10 22:29:12 发布