归并排序C++

来源:互联网 发布:gson如何解析json数组 编辑:程序博客网 时间:2024/06/14 13:26

#include<iostream>

#include<stdlib.h>

#include<stdio.h>

using namespace std;

void Merge(int data[], int l, int m, int r)

{

    int i, j, k;

    int *pd;

    pd = (int *)malloc((r - l + 1) * sizeof(int));

    i = l;

    j = m + 1;

    k = 0;

    while(i <= m && j <= r) pd[k++] = data[i] < data[j] ? data[i++] : data[j++];

    while(i <= m) pd[k++] = data[i++];

    while(j <= r) pd[k++] = data[j++];

    for(k = 0, i = l; i <= r; i++, k++) data[i] = pd[k];

    free(pd);

 

 

}

void MergeSort(int data[], int l, int r)

{

    int m;

    if(l < r){

        m = (l + r) >> 1;//2向下取整

        MergeSort(data, l, m);//递归

        MergeSort(data, m + 1, r);

        Merge(data, l, m, r);

 

    }

}

 

int main()

{

    int mydata[10] = {2, 1, 3, 4, 6, 5, 8, 7, 10, 9};

    MergeSort(mydata, 0, 9);

    for(int i = 0; i <= 9; i++)

    {

        cout<<mydata[i]<<" ";

    }

    return 0;

}


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 爬山虎脚 爬山虎的脚 爬山虎图片 爬山虎资料 爬山图片 爬山 梦见爬山 爬山英文 爬山虎作文 爬山英语 爬山简笔画 爬山的英文 爬山虎拼音 爬山拼音 爬山好处 爬山朋友圈 爬山的好处 异叶爬山虎 梦到爬山 爬山虎种植 爬山日记 爬山虎叶子 爬山虎画 爬山膝盖疼 北京爬山 爬山减肥 爬山车 小猴爬山 爬山赛车 爬山减肥吗 暑假爬山 爬山鞋 猛虎硬爬山 爬山运动 爬山腿痛 爬山好去处 爬山活动 爬山推荐 爬山的作文 去爬山 爬山装备