void merge(int l,int mid,int r){
	int i,j,k;
	i=l;j=mid+1;k=l;
	while(i<=mid&&j<=r){
		if(a[i]<=a[j]) b[k++]=a[i++];//b数组暂时存放一下里面的值,a[i]和a[j]哪个小放哪个 
		else b[k++]=a[j++];
	}
	while(i<=mid) b[k++]=a[i++];//检查是否有遗漏 
	while(j<=r) b[k++]=a[j++];
	for(int i=l;i<=r;i++)a[i]=b[i];//重新赋值给a 
}
void msort(int l,int r){
	int mid=(l+r)/2;
	if(l==r) return;//边界 
	msort(l,mid);//先把起始点到中间的找到 
	msort(mid+1,r);//再把中间到最后的找到 
	merge(l,mid,r);//合并,排序 
}