cpp
复制代码
#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],tmp[1000005];
void mearge(int l,int mid,int r)
{
int i=l,j=mid+1,k=l;
while(i<=mid&&j<=r)
{
if(a[i]<a[j]) tmp[k++]=a[i++];
else tmp[k++]=a[j++];
}
while(i<=mid) tmp[k++]=a[i++];
while(j<=r) tmp[k++]=a[j++];
for(int i=l;i<=r;i++)
{
a[i]=tmp[i];
cout<<a[i]<<" ";
}
cout<<endl;
}
void mearge_sort(int l,int r)
{
if(l==r)
{
return ;
}
int mid=(l+r)/2;
mearge_sort(l,mid);
mearge_sort(mid+1,r);
mearge(l,mid,r);
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
mearge_sort(1,n);
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}