Advertisement

归并排序(C语言)

阅读量:

基本思想阐述

归并排序(Merge Sort)是一种基于归并理念构建的排序技术,其运行机制依托于传统的分治(divide-and-conquer)方法论(该策略通过将复杂问题分解为若干个子问题,并采用递归方式逐一解决,随后在整合阶段将各子问题的解进行组合,从而实现整体问题的求解,即所谓的“分而治之”)。

实现过程概述

分而治之

归并排序的实现方式是将需要排序的数组划分为两个子序列,每个子序列包含n/2个元素,随后对这两个子序列分别进行递归式的排序操作,最终将已经排好序的两个子序列合并在一起,从而获得完整的有序序列。例如,在对数组[8 4 5 7 1 3 6 2]实施归并排序的过程中,其具体步骤如下所示:

在这里插入图片描述

从整体结构来看,其形态与完全二叉树具有高度相似性。在本研究中,归并排序的实现方式选择递归方法(同时亦可采用迭代方式完成)。拆分阶段可被视作递归分解子序列的操作过程,而递归的深度则对应于log2n的数值。

合并相邻有序子序列

再观察阶段,此时需要将两个已排序的子序列整合为一个完整的有序序列

全部评论 (0)

还没有任何评论哟~