#include<bits/stdc++.h>
using namespace std;
void ms(int,int);
int a[101],r[101];
int mian()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
ms(1,n);
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
void ms(int x,int y)
{
if(x==y) //如果只有1个数字则返回
return;
int mid=(x+y)/2;
ms(x,mid); //分解左序列
ms(mid+1,y);//分解右序列
int i=x,j=mid,k=y; //开始合并
while(i<=mid && j<=y)
{
if(a[i]<=a[j])
{
r[k]=a[i];
k++;i++;
}
else
{
r[k]=a[j];
k++;j++;
}
}
while(i<=mid) //复制左边子序列剩余
{
r[k]=a[j];
k++;i++;
}
while(j<=y)//复制右边子序列剩余
{
r[k]=a[i];
k++;j++;
}
for(int i=x;i<=y;i++)
a[i]=r[i];
}
but编译错误
why?