25版王道数据结构课后习题详细分析 第八章 8.7 外部排序

一、单项选择题

————————————————————

————————————————————

解析:外部排序和内部排序最主要的区别是是否涉及内存、外存的数据交换。


正确答案:

————————————————————

————————————————————

解析:置换选择排序得到c八义个“疋相等的归并段,A错误。外部排序的主要时间消耗在内外存之间的数据交换上,B错误。败者树是一棵完全二叉树,C正确。外部排序包括两个阶段:生成初始归并段和对初始归并段进行归并,这两个阶段都涉及对文件的读/写操作,D错误。


正确答案:

————————————————————

————————————————————

解析:多路平衡归并的目的是减少归并趟数,因为当m个初始归并段采用k路平衡归并时,所需趟数s =「logm,若不采用多路平衡归并,则其归并趟数大于s。


正确答案:

————————————————————

————————————————————

解析:初始归并段的个数r=375000/600= 625,因此,归并趟数S=/ logmr7=l log,6251=4。第一趟把625个归并段归并成625/5= 125个;第二趟把125个归并段归并成125/5=25个;第三趟把25个归并段归并成25/5=5个;第四趟把5个归并段归并成5/5=1个。


正确答案:

————————————————————

————————————————————

解析:在外部排序过程中输入/输出缓冲区就是排序的内存工作区,例如做m路平衡归并需要m个输入缓冲区和1个输出缓冲区,用以存放参加归并的和归并完成的记录。在产生初始归并段时也可用作内部排序的工作区。它没有传送用户界面的消息的任务。


正确答案:

————————————————————

————————————————————

解析:相比普通的m路归并:需增加一个输出缓冲区,当一个输出缓冲区满时,输出一个缓冲区的同时归并程序可向另一个输出缓冲区填充数据,这就实现了内部归并和输出的并行。需增加m个输入缓冲区,当m个输入缓冲区正在运行时,外部可向新增的m个缓冲区写入数据,这就实现了输入和内部归并的并行。综上,需设置2个输出缓冲区,2m个输入缓冲区。


正确答案:

————————————————————

————————————————————

解析:归并趟数=「logan],其中k表示归并的路数,n表示元素个数,当k =4、n=64时,归并趟数恰好等于3,因此选取的归并路数至少是4。


正确答案:

————————————————————

————————————————————

解析:置换-选择排序是外部排序中生成初始归并段的方法,用此方法得到的初始归并段的长度是不等长的,其长度平均是传统等长初始归并段的2倍,从而使得初始归并段数减少到原来的近二分之一。但是,置换-选择排序不是一种完整的生成有序文件的外部排序算法。


正确答案:

————————————————————

————————————————————

解析:设内存工作区w= 1,则文件{1,2,3,4,5}产生1个有序段,而文件{5,4,3,2,1}产生5个有序段,因此m与待排文件、内存工作区大小w和n都有关,但不是A、B、C项描述的直接关系。


正确答案:

————————————————————

————————————————————

解析:在败者树中选取最小关键字的时间复杂度取决于败者树的高度,所需时间为O(logk)。


正确答案:

————————————————————

————————————————————

解析:Ⅰ正确,是败者树的性质。在败者树的维护过程中,会让胜利者一直调整到根结点,IⅠ正确。以小根堆为例,每次调整时,先比较下一层的两个元素(1次),找出较小值,然后比较当前元素和下一层的较小元素(1次),以决定是否向下交换位置,II正确。堆在维护时,可能会在中间某层停止(若此处无须调整),而不一定要走到叶结点,IⅣ错误。


正确答案:

————————————————————

————————————————————

解析:最佳归并树在外部排序中的作用是设计m路归并排序的优化方案,仿照构造哈夫曼树的方法,以初始归并段的长度为权值,构造具有最小带权路径长度的m叉哈夫曼树,可以有效地减少归并过程中的读/写记录数,加快外部排序的速度。


正确答案:

————————————————————

————————————————————

解析:k阶最佳归并树中只有度为0和k的结点。设结点总数为n,度为0的结点数为n,度为k
的结点数为ng,则no=m、n-1=kxnp,n=ng+ng,因此kxng=m+ng-1,求得ng=(m-1)(k一1)


正确答案:

————————————————————

————————————————————

解析:



正确答案:

————————————————————

————————————————————

解析:外部排序指的是大文件的排序,即待排序的记录存储在外存中,待排序的文件无法一次性装入内存,需要在内存和外存之间进行多次数据交换,以达到排序整个文件的目的。外部排序通常采用归并排序算法。A、B、C项都是内部排序的方法。


正确答案:

————————————————————

————————————————————

解析:

正确答案:

二、综合应用题

————————————————————

————————————————————

解答:

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值