举例说明什么是合并排序算法(Merge Sort)?

2023年2月21日08:33:40举例说明什么是合并排序算法(Merge Sort)?已关闭评论

合并排序法(Merge Sort)的工作原理是针对已排序好的两个或两个以上的数列(或数据文件),通过合并的方式将其组合成一个大的且已排好序的数列(或数据文件)。其步骤如下:

步骤01 将N个长度为1的键值成对地合并成N/2个长度为2的键值组。

步骤02 将N/2个长度为2的键值组成对地合并成N/4个长度为4的键值组。

步骤03 将键值组不断地合并,直到合并成一组长度为N的键值组为止。

下面我们用38、16、41、72、52、98、63、25数列从小到大排序的过程来说明合并排序法的基本演算流程,如图3-23所示。

举例说明什么是合并排序算法(Merge Sort)?

图3-23 合并排序法的演算流程

图3-23展示的合并排序法例子是一种最简单的合并排序,又称为2路(2-way)合并排序,主要是把原来的数列视作N个已排好序且长度为1的数列,再将这些长度为1的数列两两合并,结合成N/2个已排好序且长度为2的数列;同样的做法,再按序两两合并,合并成N/4个已排好序且长度为4的数列,以此类推,最后合并成一个已排好序且长度为N的数列。

现在将排序步骤整理如下:

步骤01 将N个长度为1的数列合并成N/2个已排序妥当且长度为2的数列。

步骤02 将N/2个长度为2的数列合并成N/4个已排序妥当且长度为4的数列。

步骤03 将N/4个长度为4的数列合并成N/8个已排序妥当且长度为8的数列。

步骤07 将N/2 i-1 个长度为2 i-1 的数列合并成N/2 个已排序妥当且长度为2 的数列。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。