归并排序模板!极简版

我怕爱的太早我们不能终老 提交于 2019-11-26 16:38:08
void Sort(int l,int r){
    if(l==r)return;
    int mid=(l+r)>>1;
    Sort(l,mid),Sort(mid+1,r);
    int i=l,j=mid+1,k=l;
    while(i<=mid&&j<=r){
        if(a[i]<=a[j])tmp[k++]=a[i++];
        else tmp[k++]=a[j++],ans+=mid-i+1;
    }
    while(i<=mid)tmp[k++]=a[i++];
    while(j<=r)tmp[k++]=a[j++];
    for(i=l;i<=r;i++)a[i]=tmp[i];
}




Sort(1,n);

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!