具体合并的过程并不是很清晰啊
代码
#include <bits/stdc++.h>
using namespace std;
int n1[100];
int n2[100];
void ms(int x,int y)
{
if(y-x>1)
{
int m=x+(y-x)/2;
int p=x,q=m,i=x;
ms(x,m);
ms(m,y);
while(p<m||q<y)
{
if(q>=y||(p<m&&n1[p]<=n2[q]))
n2[i++]=n1[p++];
else
n2[i++]=n1[q++];
}
for(i=x;i<y;i++)
n1[i]=n2[i];
}
}
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
cin>>n1[i];
ms(0,n);
for(int i=0;i<n;i++)
cout<<n1[i]<<" ";
cout<<endl;
}
}