AcWing 787. 归并排序
归并排序模板
int tmp[100010];
void MergeSort(vector<int> &nums,int l,int r)
{
if(l>=r)
return;
int mid=(l+r)/2;
MergeSort(nums,l,mid);//使用mid和mid+1防止死循环
MergeSort(nums,mid+1,r);
int i=l,j=mid+1,index=0;
while(i<=mid&&j<=r)
{
if(nums[i]<nums[j])
{
tmp[index++]=nums[i++];
}
else
{
tmp[index++]=nums[j++];
}
}
while(i<=mid)
{
tmp[index++]=nums[i++];
}
while(j<=r)
{
tmp[index++]=nums[j++];
}
for(int ii=l,jj=0;ii<=r;ii++,jj++)
{
nums[ii]=tmp[jj];
}
}

浙公网安备 33010602011771号