武汉大学数据结构MOOC第14周测验

本文详细介绍了外排序和内排序的区别,指出外排序涉及内存与外存的数据交换,而内排序则不。外排序通常用于处理大量数据,包括生成初始归并段和多路归并两个阶段。在k路平衡归并中,采用败者树能有效减少比较次数。同时,讨论了归并段数量与归并趟数、构建败者树的时间复杂度以及总的关键字比较次数与k无关。最后,分析了不同算法对外排序效率的影响,如置换-选择算法产生的有序段数量与数据分布有关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1单选(2分)‏外排序和内排序的主要区别是( )。
A.内排序所需内存小,而外排序所需内存大
B.内排序不涉及内、外存数据交换,而外排序涉及内、外存数据交换
C.内排序的数据量小,而外排序的数据量大
D.内排序速度快,而外排序速度慢
正确答案:B

课本考据:
1、在排序过程中,若整个表都放在内存中处理,排序时不涉及数据的内、外存交换,则称为内排序;
2、在排序过程中,若要进行数据的内、外存交换,则称为外排序。

2单选(2分)‌以下关于外排序的叙述中正确的是( )。
A.外排序把外存文件调入内存,再利用内排序方法进行排序,所以外排序所花时间完全由采用的内排序确定
B.外排序所花时间=内排序时间+外存数据读写时间+内部归并所花时间
C.外排序完全可以由内排序来替代
D.外排序并不涉及文件的读写操作
正确答案:B
解析: B、外排序过程主要分为两个阶段:生成初始归并段和对初始归并段进行归并,这两个步骤中都涉及文件的读写操作。

课本考据:外排序的基本方法是归并排序法,它分为两个步骤:
1、生成若干初始归并段(顺串):将一个文件(含待排序的数据)中的数据分段读入内存中,在内存中对其进行内排序,并将经过排序的数据段(有序段)写到多个外存文件上。
2、多路并归:对这些初始归并段进行多遍归并,使得有序的归并段逐渐扩大,最后在外存上形成整个文件的单一归并段,完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值