不要哀求,学会争取,若是如此,终有所获.|

凪风sama

园龄:1年11个月粉丝:18关注:6

归并排序模板

复制代码
void merge_sort(int q[], int L, int R)
{
    if (L >= R)return;//递归中止条件
    int mid =(L + R) >> 1;
    merge_sort(q, L, mid);
    merge_sort(q, mid + 1,R);//先递归处理左右
    int l = L; int r = mid + 1;
    int n = 0;
    while (l <= mid && r <= R)
    {
        if (q[l] <= q[r])
            Temp[n++] = q[l++];
        else
            Temp[n++] = q[r++];
    }
    while (l <= mid)Temp[n++] = q[l++];
    while (r <= R)Temp[n++] = q[r++];
    for (int i = L,j = 0; L <= R;L++,j++)//数据导入
        q[L] = Temp[j];
}
注意归并排序需要额外一个数组Temp来暂时存储结果
复制代码

注意归并的for循环还有while里不要多写++,否则会出错误的

 

本文作者:凪风sama

本文链接:https://www.cnblogs.com/CrescentWind/p/17347710.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   凪风sama  阅读(14)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示