#include<stdio.h>
int num[1000];
void swap(int &a,int &b)
{
int t=a;
a=b;
b=t;
}
int part(int l,int r)
{
int x=num[r];
int i=l-1;
for(int j=l;j<r;j++)
{
if(num[j]<x)
{
i++;
swap(num[i],num[j]);
}
}
swap(num[i+1],num[r]);//让i+1永远保持大于x的状态
return i+1;
}
void qsort(int l,int r)
{
if(l<r)
{
int q=part(l,r);
qsort(l,q-1);
qsort(q+1,r);
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&num[i]);
qsort(0,n-1);
for(int i=0;i<n;i++)
printf("%d ",num[i]);
printf("\n");
}
老是用STL的sort,自己写个qsort~~
最新推荐文章于 2024-05-29 23:38:35 发布