码迷,mamicode.com
首页 > 编程语言 > 详细

归并排序模板

时间:2019-12-23 00:44:00      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:排序   i++   amp   color   数列   ||   code   列合并   归并排序   

int a[500002];
int b[500002];
void mergesort(int l,int mid,int r){ //使l~mid和mid~r两个有序数列合并为一个有序数列
    int i=l,j=mid+1;
    for(int k=l;k<=r;k++){
        if(j>r || i<=mid&&a[i]<=a[j]) b[k] =a[i++];
        else b[k] =a[j++];
    }
    for(int k=l;k<=r;k++) a[k]=b[k];
}
void msort(int ll,int rr){ //排序从ll~rr的数列
        int mid,s=2;
        while(s<rr-ll+1){
            for(r=ll+s-1;r<=rr;r+=s){
                l=r-s+1;mid=l+(s-1)/2;
                mergesort(l,mid,r);
            }
            mergesort(l,r-s,rr);
            s*=2;
        }
}

归并排序模板

标签:排序   i++   amp   color   数列   ||   code   列合并   归并排序   

原文地址:https://www.cnblogs.com/MayDayMemory/p/12081605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!