分割統治
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
int n,a[100009];
void fast_sort(int l,int r){
int mid=a[(l+r)/2];
int i=l,j=r;
do{
//do while
while(a[i]<mid)i++;//寻找交换
while(a[j]>mid)j--;
if(i<=j){
//交换勿忘指针变换
swap(a[i],a[j]);
i++;j--;
}
}while(i<=j){
if(l<j)fast_sort(l,j);//递归左边
if(r>i)fast_sort(i,r);//递归右边
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
sort(a,a+n);
for(int i=0;i<n;i++){
if(i)printf(" ");
printf("%d",a[i]);
}
return 0;
}