APP下载

归并排序的概念与算法设计

2015-09-26邹永林

现代计算机 2015年20期
关键词:排序设计

邹永林

(常熟理工学院计算机学院,常熟 215500)

归并排序的概念与算法设计

邹永林

(常熟理工学院计算机学院,常熟215500)

0 引言

归并排序是一种重要的内部排序方法,在数据结构课程中作为一类独特的排序方法专门进行介绍和讨论。但是,其算法设计在教学实践中常与合并排序混为一谈,这在一定程度上造成了对归并排序概念的曲解和算法设计的缺失。

本文首先分析了归并排序与合并排序的差异,进而对标准的归并排序算法设计进行了探讨。

1 归并排序与合并排序的差异

关于利用归并思想进行排序的方法,英文著作中采用“Merge Sort”一词标识,中文文献中有两个术语:“归并排序”和“合并排序”,在数据结构课程中常采用前者,在算法分析课程中采用后者,但在进行算法设计与分析时,使用相同的算法代码进行说明。

实际上,归并排序和合并排序之间,存在着一定的差异。以下分别从算法思想和排序过程两个方面进行讨论。

1.1算法思想

在国内绝大多数数据结构著作[1-5]中,一般使用“归并排序”一词,且采用严蔚敏等的定义,即:“假设初始序列含有n个记录,则可看成是n个有序子序列,每个子序列的长度为1,然后两两归并,得到「n/2⌉个长度为2或1的有序子序列;再两两归并,…,如此重复,直到得到一个长度为n的有序序列为止”。

而国外相关著作中,一般采用“合并排序”而非“归并排序”的术语。Clifford A.Shaffer的定义[6]是:“合并排序是基于分治法的,它将一个数组分成两个长度相等的子数组,为每一个子数组排序,然后再将它们合并成一个数组”。……

登录APP查看全文

猜你喜欢

排序设计
排排序
何为设计的守护之道?
恐怖排序
《丰收的喜悦展示设计》
节日排序
瞒天过海——仿生设计萌到家
刻舟求剑
设计秀
有种设计叫而专
设计之味