我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > 归并排序算法
总共48086条微博

动态微博

查看: 1506|回复: 0

归并排序算法

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-07-16 21:33:51 |只看该作者 |倒序浏览
    归并排序指的是将两个已经排好序的序列合并成一个序列的操作 ,具体原理如下:

    1,将序列每相邻两个数字进行归并操作,形成floor(n/2)个序列,排序后每个序列包含两个元素。
            2,将上述序列再次归并,形成floor(n/4)个序列,每个序列包含4个元素。
            3,重复步骤2 直至完成。

    public static void Merge(int[] temp,int left,int mid,int right)
    {
      inti,left_end,num_elements,tmp_pos;
      left_end=mid-1;
      tmp_pos=left;
      num_elements=right-left+1;
      while((left<=left_end)&&(mid<=right))
       {
        if(myArray[left]<=myArray[mid])
        {
          temp[tmp_pos]=myArray[left];
          tmp_pos=tmp_pos+1;
          left=left+1;
        }
        else
        {
          temp[tmp_pos]=myArray[mid];
          tmp_pos=tmp_pos+1;
          mid=mid+1;
         }

       }
       while(left<=left_end)
      {
        temp[tmp_pos]=myArray[left];
        left=left+1;
        tmp_pos=tmp_pos+1;
       }
       while(mid<=right)
       {
        temp[tmp_pos]=myArray[mid];
        mid=mid+1;
        tmp_pos=tmp_pos+1;
       }
       for(i=0;i<num_elements;i++)
       {
        myArray[right]=temp[right];
        right=right-1;
       }

    }


    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表