zoukankan      html  css  js  c++  java
  • 归并排序理论---不含源码

    |   版权声明:本文为博主原创文章,未经博主允许不得转载。

      归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。因为采用的是分治法,因此归并排序的两个最重要的步骤是拆分合并

      复杂度:时间复杂度为O(nlogn) 这是该算法中最好、最坏和平均的时间性能。空间复杂度为 O(n);

      原理:假如将一个长为n初始序列,看成一个有n个有序的子序列,其中每个字序列的长度为1,然后在两两归并,就可以组成长为2的一组序列,这就是归并的第一趟排序,然后在将长为2的一组与另一组亮亮比较,就形成了第二趟排序,直到组成长为n的一组序列的时候,排序结束。

      我的语言表达能力不是很强,表达不是很清楚,下面通过实例演示归并排序的详细过程,如下所示:

      将设初始关键字序列为:50, 35, 56, 97, 76, 15, 30

      第一步:我们将上述长为7的序列的每一个元素看成一组,就有了如下的一组序列:

        

      第二步:将这一组序列两两归并比较,进行排序,如下:

         

      第三步: 以第一趟的结果,再次以一组为单位,两组一一比较,进行排序,如下图:

         

      第四步:参照上面的步骤,依次的归并,直到整个序列归并为一组的时候结束。

  • 相关阅读:
    MYSQL学习笔记——数据类型
    MYSQL学习笔记——常用语句
    MYSQL学习笔记——基本语法
    Java虚拟机——类加载机制
    Java虚拟机——Class类文件结构
    Tmux
    nginx 更新提示端口占用的解决办法
    fcitx 无法启动
    E:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
    清除浮动
  • 原文地址:https://www.cnblogs.com/geore/p/5892459.html
Copyright © 2011-2022 走看看