用的是快排,前三个点WA。
#include<bits/stdc++.h>
using namespace std;
long long ai[100005];
int n;
void q(int left,int right){
int mid=(left+right)/2;
int i=left,j=right;
do{
while(ai[i]<ai[mid])i++;
while(ai[j]>ai[mid])j--;
if(i<=j){
swap(ai[i],ai[j]);
i++;
j--;
}
}while(i<=j);
if(i<right)q(i,right);
if(j>left)q(left,j);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>ai[i];
q(1,n);
for(int i=1;i<=n-1;i++)cout<<ai[i]<<" ";
cout<<ai[n]<<endl;
return 0;
}