加了随机化但是最后一个TLE
#include<bits/stdc++.h>
using namespace std;
int arr[100002];
void swap(int &m,int &n)
{
int c;
c=m;
m=n;
n=c;
return;
}
void qsort(int l,int r,int *a)
{
if(l>=r)return;
int i=l,j=r,base;
base=rand()%(r-l+1)+l;
swap(a[base],a[l]);
base=a[l];
while(i<j)
{
while(i<j&&a[j]>=base)j--;
while(i<j&&a[i]<=base)i++;
if(i<j)swap(a[i],a[j]);
}
swap(a[l],a[i]);
i-=1,j+=1;
qsort(l,i,a);
qsort(j,r,a);
return;
}
int main()
{
//freopen("3.in","r",stdin);
//freopen("3.out","w",stdout);
int n;
cin>>n;
srand(time(NULL));
for(int i=1;i<=n;i++)
scanf("%d",&arr[i]);
qsort(1,n,arr);
for(int i=1;i<=n;i++)
printf("%d ",arr[i]);
cout<<endl;
return 0;
}