美文网首页
排序算法之——归并类排序

排序算法之——归并类排序

作者: 和女神经常玩 | 来源:发表于2018-04-19 21:41 被阅读0次

对两个有序序列归并的过程

每次比较子序列头,取出较小的进入结果序列;其后继续比较两个子序列头,取出较小的进入结果序列,重复直到一个子序列为空,另一个非空子序列中剩余的记录(有序)则可以直接进入结果序列。


二路归并排序

思想:首先将初始序列的n个记录看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2(向上取整)个长度为2(n为奇数时最后一个序列的长度为1)的有序子序列。在此基础上,再对长度为2的有序子序列进行两两归并,得到若干个长度为4的有序子序列。以此类推,直到得到一个长度为n的有序序列为止。

平均时间复杂度:O(nlog2n)。

稳定性:稳定。

代码:


自然归并排序

思想:在二路归并排序中,第一步合并相邻并且长度为1的子序列,是因为长度为1的子序列被认为是默认有序的。事实上,对于初始给定的记录序列,通常存在多个长度大于1并且已经有序的子序列。自然归并排序就是,对于这样的序列,进行一次线性扫描,找到这些长度大于1并且已经有序的子序列,然后将相邻的这些子序列两两归并,得到相应的子序列,重复直至整个序列已经有序。

平均时间复杂度:O(n)。

稳定性:稳定。

代码:

相关文章

  • 2018-06-30

    排序算法之归并排序 归并排序算法是排序算法中的经典算法之一,其核心思想是利用归并的思想实现的排序方法,该算法采用经...

  • 归并排序

    图解排序算法(四)之归并排序 基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用...

  • 6-十大排序篇二

    十大排序(2) 今天先学习第二大类排序算法 归并排序 排序排序 希尔排序 堆排序 1.归并排序 分析:利用归并的思...

  • 归并排序

    来源:图解排序算法(四)之归并排序 - dreamcatcher-cx - 博客园 归并排序(MERGE-SORT...

  • java实现快速排序、归并排序、希尔排序、基数排序算法...

    快速排序算法 归并排序算法 希尔排序算法 基数排序算法

  • 排序算法之归并排序

    归并排序(Merge Sort) 归并排序是利用归并的思想实现排序的方式,该算法采用的是经典的分治算法 归并排序过...

  • 排序算法之——归并类排序

    对两个有序序列归并的过程 每次比较子序列头,取出较小的进入结果序列;其后继续比较两个子序列头,取出较小的进入结果序...

  • 排序算法优化

    前面文章分别讲解了冒泡排序,插入排序,选择排序;快速排序,归并排序;桶排序,计数排序,基数排序,三大类排序算法。 ...

  • 算法入门——归并排序、希尔排序

    上篇文章我们学习了算法入门——堆排序,这篇文章我们学习算法入门——归并排序、希尔排序。 归并排序 归并排序是将一个...

  • web开发需要知道的几个算法

    算法分类 快速排序算法 深度优先算法 广度优先算法 堆排序算法 归并排序算法

网友评论

      本文标题:排序算法之——归并类排序

      本文链接:https://www.haomeiwen.com/subject/svpgkftx.html