2012版《数据结构高分笔记》更新补丁之外部排序.pdfVIP

2012版《数据结构高分笔记》更新补丁之外部排序.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012版《数据结构高分笔记》更新补丁之外部排序.pdf

※特别章 外部排序(2012 版《数据结构高分笔记》更新补丁) ·外部排序简介 所谓外部排序,即对外存中的数据进行排序(相对于内部排序而言),也可以说是对文 件中的数据进行排序。有了内部排序算法,为什么还要外部排序?因为文件太大,内存放不 下。外排做法可以概括为一句话:将内存作为工作空间来调整外存中数据的位置。 具体可以分成以下三个要点: ① 文件在外存中的组织; ② 文件在内存中的排序; ③ 文件在内外存之间的交换。 说明:本补丁是 2012 年数据结构考研大纲新增内容,虽然知识点不多,但由于第一年 被列入考试范围,所以大家要重视。 ·归并排序法 归并排序法是外排序中最常用的方法,分为两个执行阶段。第一阶段:将文件中的数据 分段输入到内存中,在内存中用内排序方法对其分类,这样排序完的文件段称作归并段,然 后将其写回外存中而在外存中形成了许多初始归并段。第二阶段:对这些初始归并段采用某 种归并方法,进行多遍归并,最后在外存上形成整个文件的单一归并段,也就完成了这个文 件的外排序。 说明:外排序中的归并排序法和内排序中的归并法是类似的,都是由小单元逐渐归并成 单元的过程,注意对比,加深理解。 归并排序算法分两个阶段: 1.初始归并段的形成 其过程是根据缓冲区大小,由文件输入(由外存读入内存)记录,当记录充满缓冲区 后,选择最小的(以递增排序为例)记录输出(由内存写出到外存),其空缺位置由下一个 输入记录来取代,输出的记录成为当前初始归并段的一部分。如果新输入的记录不能成为当 前生成的归并段的一部分,即它比生成的当前部分归并段最大的记录要小(如例 1 中的关 键字11,比15要小,不可能出现在当前归并段中),它将等待生成下一个归并段时提供选 择。反复进行上述操作,直到所有新输入的记录关键字都小于最后输出记录的关键字时(如 步骤 9 中的所有关键字都比83 小,则以83 为结尾的归并段生成完毕),就生成了一个初始 归并段。接着继续生成下一个归并段,直到全部记录都处理完毕为止。 下面通过例题来具体说明一下。 例1.设输入文件的各个记录的关键字为: 15,19,04,83,12,27,11,25,16,34,26,07,10,90,06, ... ... 假设内存缓冲区可容纳4个记录,成初始归并段。如下表所示,给出了生成初始归并 段过程中各步的缓冲区内容和输出结果。 步 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 数 缓 15 15 15 11 11 11 11 11 11 11 11 06 ... ... 冲 区 19 19 19 19 25 16 16 16 16 16 16 16 ... ... 内 04 12 27 27 27 27 34 26 26 26 26 26 ... ... 容 83 83 83 83 83 83 83 83 07 10 90 90 ... ... 输 04 12 15 19 25 27 34 83 07 10 11 06 ... ... 出 结 ... ... 果 所生成的第一初始归并段 所生成的第二初始归并段 初始归并段生成过程表(表中下划线数字即为生成下一归并段的候选数字) 2. k 路归并 有了m 个初始归并段(都是有序段),便可以进行k 路归并了,即将k 个初始归并段 归并产生一段,这样,m 个初始归并段产生多个这样的段,然后对这些段再用同样的方法进 行归并,如此往复,直到归并成一个段为止,这个段就是最后生成的归并段。 例2.一个文件,含有10000个记录,通过1.1 中介绍的方法,得到10个初始归并 段R1... R10,其中每一个段

文档评论(0)

kaku + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8124126005000000

1亿VIP精品文档

相关文档