Algorithms - Merging Sort

Posted zdfffg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Algorithms - Merging Sort相关的知识,希望对你有一定的参考价值。

以下示例参考自这里

技术图片

迭代法(Bottom-up)

  • 将序列每相邻两个数字进行归并操作,形成 {displaystyle ceil(n/2)} {displaystyle ceil(n/2)}个序列,排序后每个序列包含两/一个元素
  • 若此时序列数不是1个则将上述序列再次归并,形成 {displaystyle ceil(n/4)} {displaystyle ceil(n/4)}个序列,每个序列包含四/三个元素
  • 重复步骤2,直到所有元素排序完毕,即序列数为1

递归法

  • 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列
  • 设定两个指针,最初位置分别为两个已经排序序列的起始位置
  • 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置
  • 重复步骤3直到某一指针到达序列尾
  • 将另一序列剩下的所有元素直接复制到合并序列尾

以上是关于Algorithms - Merging Sort的主要内容,如果未能解决你的问题,请参考以下文章

FZU 1919 -- K-way Merging sort(记忆化搜索)

FZU Problem 1919 K-way Merging sort(大数+记忆化搜索)

Basic Sort Algorithms

Algorithms - Selection Sort

Algorithms - Insertion Sort - 插入排序

[Algorithms] Sort an Array with a Nested for Loop using Insertion Sort in JavaScript