9.8.3 非递归实现归并排序(2) - 范文中心

9.8.3 非递归实现归并排序(2)

05/17

1.程序执行。我们第一次调用“MergePass(L.r,TR,k,L.length);”,此时L.r是初始无序状态,TR为新申请的空数组,k=1.length=9。

2.第5~9行,循环的目的就两两归并,因s=1,n‐2×s+1=8,为什么循环i从1到8,而不是9呢?就是因为两两归并,最终9条记录定会剩下来,无法归并。

3.第7行,Merge函数我们前面已经详细讲过,此时i=1,i+s‐1=1,i+2×s‐1=2。也就是说,我们将SR(即L.r)中的第一个和第二个记录归并到TR中,然后第8行,i=i+2×s=3,再循环,我们就是将第三个和第四个记录归并到TR中,一直到第七和第八个记录完成归并,如图9‐8‐14所示。

(点击查看大图)图9-8-14

4.第10~14行,主要是处理最后的尾数,第11行是说将最后剩下的多个记录归并到TR中。不过由于i=9,n‐s+1=9,因此执行第13~14行,将20放入到TR数组的最后。

(点击查看大图)图9-8-15

5.再次调用MergePass时,s=2,第5~9行的循环,由第8行的i=i+2×s可知,此时i就是以4为增量进行循环了,也就是说,是将两个有两个记录的有序序列进行归并为四个记录的有序序列。最终再将最后剩下的第九条记录“20”插入TR。

(点击查看大图)图9-8-16

6.后面的类似,略。

非递归的迭代方法,避免了递归时深度为log2n的栈空间,空间只是用到申请归并临时用的TR数组,因此空间复杂度为O(n),并且避免递归也在时间性能上有一定的提升,应该说,使用归并排序时,尽量考虑用非递归方法。9

注:9关于归并排序算法更详细讲解,请参考《算法导论》第一部分第2章“算法入门”的2.3.1节“分治法”的内容。


相关内容

  • 东南大学数据结构 93-20**年
    东南大学93考研题 注意事项 : (1) 答卷上需写清题号,不必抄题 (2) 描述可用你熟悉的一种类高级语言,如类Pascal ,所用主要数据结构及变量的意义须加以注释.必要时算法中应加注释 . 一.回答下列问题 : (共 35分) l 与 ...
  • 数据结构导论试题1
    全国2004年10月高等教育自学考试 1.要将现实生活中的数据转化为计算机所能表示的形式,其转化过程依次为( ) A.逻辑结构.存储结构.机外表示 B.存储结构.逻辑结构.机外表示 C.机外表示.逻辑结构.存储结构 D.机外表示.存储结构. ...
  • 排序比较次数的数据结构分析
    排序 排序问题的输入是一个线性表,该线性表的元素属于一个偏序集:要求对该线性表的元素做某种重排,使得线性表中除表尾外的每个元素都小于等于(或大于等于)它的后继. 设R 为非空集合A 上的二元关系,如果R 满足自反性(对于每一个x ∈A ,( ...
  • 数据结构课程设计题目详细要求
    课程设计方案及要求 一.课设说明 本次课设有两个方案,方案A 和方案B ,每个方案有两个题目(两个题目均要完成).大家可以任选一个方案进行课设. 二.时间安排 17周 周二 上午 软2 周二 下午 软3 周四 上午 软2 周五 上午 软2 ...
  • 银监会专业笔试
    2015年的银监会计算机类专业科目笔试的真题.举例如下: [例1]"science"是XML 中一个元素的定义,其中元素的内容是( ). A.title B.style C.italic D.science [例2]SQ ...
  • 语言学纲要复习资料
    语言学纲要复习资料 导言 语言学发展的五个阶段 所谓 "五段" 是指 "语文学" . "历史比较语言学" . "结构主义语言学" . "形式语言学&q ...
  • 语言学常用名词解释
    语言学常识----语言学名词解释 名词解释. 1.语言学:①-是以语言作为专门研究对象的一门独立的科学:②从方法上分为历史-.比较-.历史比较-.描写-:从研究对象上可分为个别-和普通-:③19世纪初的历史比较学标志着语言学的诞生. 2.语 ...
  • 二叉树的遍历
    目 录 一.设计思想---------------------.01 二.算法流程图--------------------.01 三.源代码----------------------.04 四.运行结果----------------- ...
  • 20世纪十大算法
    20世纪十大算法 本世纪初,美国物理学会(AmericanInstitute of Physics)和IEEE计算机社团(IEEE Computer Society)的一本联合刊物<科学与工程中的计算>发表了由田纳西大学的Jac ...
  • 社交网站热点话题发现
    [摘要] 微博的迅猛发展,带来了另一种社会化得新闻媒体新形式,随着社交网络的不断发展, 国外的推特和国内的新浪微博.腾讯微博, 已经成为消息发布的重要平台.微博内容不仅包含大量的文字信息, 也包括了很多无话题表达能力的特殊符号.表情符号.微 ...