【模板】快速排序 - 洛谷
#include<iostream>
using namespace std;
void qsort(int a[],int l,int r);
int n;
int main()
{
int a[100000];
cin>>n;
for(int i = 0;i<n;i++)
{
cin>>a[i];
}
int l =0,r = n-1;
qsort(a,l,r);
for(int i = 0;i<n;i++)
{
cout<<a[i]<<" ";
}
}
void qsort(int a[],int l,int r)
{
int i = l;
int j = r;
int flag = a[(l+r)/2];
// cout<<endl<<l<<endl<<r<<endl<<flag<<endl;
int tmp;
do{
while(a[i]<flag)
i++;
while(a[j]>flag)
j--;
if(i<=j)
{
tmp = a[i];a[i]=a[j];a[j]=tmp;
i++;j--;
}
}while(i<=j);
if(l<j)qsort(a,l,j);
if(i<r)qsort(a,i,r);
}