快速排序(hoare)
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,a[maxn];
void quicksort(int l,int r){
if(l>=r) return;
int mid=(l+r)/2;
int tmp=a[mid];
int i=l,j=r;
while(i<=j){
while(a[i]<tmp) i++;
while(a[j]>tmp) j--;
if(i<=j){
swap(a[i],a[j]);
i++;j--;
}
}
quicksort(l,j);
quicksort(i,r);
}
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
quicksort(0,n-1);
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}

浙公网安备 33010602011771号