#include <iostream>
#include <cstdio>
#define maxn 1005
using namespace std;
int a[maxn];
int n;
void quiksort(int l,int r)
{
int i,j,t;
i=l;
j=r;
if(l>r)
{
return ;
}
while(i!=j)
{
//顺序很重要,要先从右往左边找
while(a[j]>=a[l]&&i<j)
j--;
//再从左往右边找
while(a[i]<=a[l]&&i<j)
i++;
if(i<j)//i和j没有相遇时交换
{
t=a[l];
a[l]=a[i];
a[i]=t;
}
}
//基准数归位
t=a[l];
a[l]=a[i];
a[i]=t;
quiksort(l,i-1);
quiksort(i+1,r);
}
void printf()
{
for(int i=0;i<n;i++)
cout << a[i] << ' ';
cout << endl;
}
int main()
{
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a[i];
}
quiksort(0,n-1);
printf();
}
return 0;
}
快速排序
最新推荐文章于 2024-02-13 06:28:35 发布