标准快速排序
#include<bits/stdc++.h>
using namespace std;
int a[100002];
void exch(int i,int j)
{
int t =a[i];
a[i]=a[j];
a[j]=t;
}
void sort(int lo,int hi)
{
if(lo>=hi)return;
int t=a[lo];
int i=lo,j=hi+1;
while(1)
{
while(a[++i]<t)if(i==hi)break;
while(a[--j]>t)if(j==lo)break;
if(i>=j)break;
exch(i,j);
}
exch(j,lo);
sort(lo,j-1);
sort(j+1,hi);
}
int main()
{
ios::sync_with_stdio(false);
int N;
cin>>N;
for(int i=0;i<N;i++)
{
cin>>a[i];
}
//这里random_shuffle的作用是随机打乱数组,可以提高快排的效率
random_shuffle(a,a+N);
sort(0,N-1);
for(int i=0;i<N;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}