还有点瑕疵
#include<iostream>
using namespace std;
int a[20];
int b[20];
void Merge(int a[],int b[],int i,int m,int n)
{
int j;
int k;
for(j=m+1,k=i;i<=m&&j<=n;++k)
{
if(a[i]>a[j])
b[k]=a[j++];
else
b[k]=a[i++];
}
while(i<=m)
{
b[k++]=a[i++];
}
while(j<=n)
{
b[k++]=a[j++];
}
for(i=0;i<n;i++)
cout<<b[i]<<' ';
cout<<endl;
}
void Msort(int a[],int b[],int s,int t)
{
int m;
int i,j;
if(s==t)
b[s]=a[s];
else
{
m=(s+t)/2;
Msort(a,b,s,m);
Msort(a,b,m+1,t);
Merge(a,b,s,m,t);
}
}
int main()
{
int n;
int i;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
Msort(a,b,0,n-1);
for(i=0;i<n;i++)
cout<<b[i]<<' ';
cout<<endl;
}