习题集解析部分
第11章 外部排序
——《数据结构题集》-严蔚敏.吴伟民版
源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
相关测试数据下载 链接☛ 数据包
本习题文档的存放目录:数据结构\▼配套习题解析\▼11 外部排序
文档中源码的存放目录:数据结构\▼配套习题解析\▼11 外部排序\▼习题测试文档-11
源码测试数据存放目录:数据结构\▼配套习题解析\▼11 外部排序\▼习题测试文档-11\Data
一、基础知识题
11.1❶假设某文件经内部排序得到100个初始归并段,试问:
(1)若要使多路归并三趟完成排序,则应取归并的路数至少为多少?
(2)假若操作系统要求一个程序同时可用的输入、输出文件的总数不超过13,则按多路归并至少需几趟可完成排序?如果限定这个趟数?则可取的最低路数是多少?
11.2❷假设一次I/O的物理块大小为150,每次可对750个记录进行内部排序,那么,对含有150000个记录的磁盘文件进行4-路平衡归并排序时,需进行多少次I/O?
11.3❶“败者树”中的“败者”指的是什么?若利用败者树求k个数中的最大值,在某次比较中得到a>b,那么谁是败者?“败者树”与“堆”有何区别?
11.4❷手工执行算法k-merge,追踪败者树变化过程。假设初始归并段为:
(10, 15, 16, 20, 31, 39, +∞);
(9, 18, 20, 25, 36,48, +∞);
(20, 22, 40, 50, 67, 79, +∞);
(6, 15, 25, 34, 42, 46, +∞);
(12, 37, 48, 55, +∞);
(84, 95, +∞)
11.5❷为什么置换-选择排序能得到平均长度为2w的初始归并段?能否依置换-插入或置换-交换等策略建立类似的排序方法?
11.6❷设内存有大小为6个记录的区域可供内部排序之用,文件的关键字序列为(51, 49, 39, 46, 38, 29, 14, 61, 15, 30, 1, 48, 52, 3, 63, 27, 4, 13, 89, 24, 46, 58, 33, 76)。试列出:
(1)用第10章中的内部排序方法求出的初始归并段;
(2)用置换-选择排序得出的初始归并段,并写出FI,W和FO的变化过程;
(3)用上面给出的数据手工执行算法repl-selection。
11.7❶试问输入文件在哪种状态下经由置换-选择排序得到的初始归并段长度最长?其最长的长度是多少?
11.8❶试问输入文件在哪种状态下经由置换-选择排序得到的初始归并段长度最短?其最短的长度是多少?
11.9❶假若一个经由置换-选择排序得到的输出文件再次进行置换-选择排序,试问该文件将产生什么变化?
11.10❷在输入文件为逆序的情况下,由11.13题所描述的自然选择排序得到的初始归并段的平均长度为多少?
11.11❷已知某文件经过置换-选择排序之后,得到长度分别为47, 9, 39, 18, 4, 12, 23和7的八个初始归并段。试为3-路平衡归并设计一个读写外存次数最少的归并方案,并求出读写外存的次数。
11.12❷已知有31个长度不等的初始归并段,其中8段长度为2,8段长度为3,7段长度为5,5段长度为12,3段长度为20(单位均为物理块)。请为此设计一个5-路最佳归并方案,并计算总的(归并所需的)读/写外存的次数。
转载注明出处:原文链接
二、算法设计题
11.13❹假设在进行置换-选择排序时,可另开辟一个和工作区的容量相同的辅助存储区(称储备库)。当输入的记录关键字小于刚输出的MINIMAX记录时,不将它存入工作区,而暂存在储备库中,接着输入下一记录,依次类推,直至储备库满时不再进行输入,而只从工作区中选择记录输出直至工作区空为止,至此得到一个初始归并段。之后,再将储备库中记录传送至工作区,重新开始选择排序。这种方法称自然选择排序。一般情况下可求得比置换-选择排序更长的归并段。
(1)试对11.4节中文件例子进行自然选择排序,求初始归并段。
(2)编写自然选择排序的算法。