代码如下
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int a[114514],b[114514],ans;
void mergee(ll l,ll r){
if(l>=r) return;
ll mid=(l+r)/2;
ll i=l,j=mid+1,len=0;
while(len<r-l+1){
if(a[i]<a[j]&&i<=mid){
b[++len]=a[i++];
}
else if(j<=r){
b[++len]=a[j++];
}
}
for (int i=l;i<=r;i++) a[i]=b[i];
return;
}
void merge_sort(ll l,ll r){
if(l<r){
int mid=(l+r)/2;
merge_sort(l,mid);
merge_sort(mid+1,r);
mergee(l,r);
}
}
int main(){
ll n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
merge_sort(1,n);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}