废话不多说,直接上代码:
#include <bits/stdc++.h>
using namespace std;
int a[100001];
int b[100001];
void h(int l,int r){
int i,j,k;
if(l>=r)return ;
int mid=(l+r)/2;
h(l,mid);
h(mid+1,r);
for(i=l;i<=r;i++)
b[i]=a[i];
i=l,j=mid+1;
for(k=l;k<=r;k++){
if(i<=mid&&(j>r||b[i]>b[j]))
a[k]=b[i++];
else
a[k]=b[j++];
}
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
h(0,n-1);
for(int i=0;i<n;i++)
cout<<a[i]<<' ';
return 0;
}