归并排序
#include<cstdio>
#include<algorithm>
#define MAXN 10086000
using namespace std;
int a[MAXN],b[MAXN];
int n,k;
void m_sort(int l,int r){
if(l==r)return ;
int m=(l+r)/2;
m_sort(l,m);
m_sort(m+1,r);
int p1=l,p2=m+1;
for(int i=l;i<=r;i++)
{
if(p1>m) b[i]=a[p2++];
else if(p2>r) b[i]=a[p1++];
else if(a[p1]<a[p2]) b[i]=a[p1++];
else b[i]=a[p2++];
}
for(int i=l;i<=r;i++)
a[i]=b[i];
}
int main(){
/* cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
*/
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
m_sort(1,n+1);
for(int i=2;i<=n+1;i++)cout<<a[i]<<" ";
return 0;
}