int *temp=new int[n];
int p1=l;
int p2=mid+1;
int p=0;
while(p1<=mid&&p2<=r){
if(arr[p1]<=arr[p2]){
temp[p++]=arr[p1++];
}else{
temp[p++]=arr[p2++];
}
}
while(p1<=mid){
temp[p++]=arr[p1++];
}
while(p2<=r){
temp[p++]=arr[p2++];
}
for(int i=0;i<p;i++){
//存入数组
arr[i+l]=temp[i];
}
}
void merge(int arr[],int l,int r){
if(l>=r){
return;
}
int mid=(l+r)/2;
//左边拆分
merge(arr,l,mid);
//右边拆分
merge(arr,mid+1,r);
//合并并排序
mergeSort(arr,l,mid,r);
}
int main()
{
c