求助
#include<bits/stdc++.h>
using namespace std;
int n;
int a[100100];
void qp(int x,int y,int z){
if(x>=y) return;
int i=x,j=y,k=a[z];
while(i<j){
if(a[j]<=k){
if(a[i]>=k&&a[i]!=a[j]){
swap(a[i],a[j]);
}
else ++i;
}
else --j;
}
if(x+1<j) qp(x,j-1,rand()%(j-x)+x);
if(y>j) qp(j+1,y,rand()%(y-j)+j+1);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
qp(1,n,rand()%n+1);
for(int i=1;i<=n;i++){
printf("%d ",a[i]);
}
return 0;
}