《数据结构》习题汇编09第九章排序试题

合集下载

数据结构第九章排序习题与答案

数据结构第九章排序习题与答案

习题九排序一、单项选择题1.下列内部排序算法中:A.快速排序 B.直接插入排序C. 二路归并排序D.简单选择排序E. 起泡排序F.堆排序(1)其比较次数与序列初态无关的算法是()(2)不稳定的排序算法是()(3)在初始序列已基本有序(除去n 个元素中的某 k 个元素后即呈有序, k<<n)的情况下,排序效率最高的算法是()(4)排序的平均时间复杂度为O(n?logn)的算法是()为 O(n?n) 的算法是()2.比较次数与排序的初始状态无关的排序方法是( )。

A.直接插入排序B.起泡排序C.快速排序D.简单选择排序3.对一组数据( 84, 47, 25, 15, 21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21(2) 15 47 25 84 21(3) 15 21 25 84 47(4) 15 21 25 47 84则采用的排序是 ()。

A. 选择B.冒泡C.快速D.插入4.下列排序算法中 ( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。

A. 选择B.冒泡C.归并D.堆5.一组记录的关键码为(46,79,56, 38,40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A. (38,40,46,56,79,84) B. (40,38,46,79,56,84)C. (40,38,46,56,79,84) D. (40,38,46,84,56,79)6.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是()排序。

A.冒泡 B. 希尔C. 快速D. 堆7.就平均性能而言,目前最好的内排序方法是() 排序法。

A. 冒泡B.希尔插入C.交换D.快速8.下列排序算法中,占用辅助空间最多的是:()A. 归并排序B.快速排序C.希尔排序D.堆排序9.若用冒泡排序方法对序列 {10,14,26,29,41,52}从大到小排序,需进行()次比较。

数据结构 第9章答案

数据结构  第9章答案

第9章 查找参考答案一、填空题(每空1分,共10分)1. 在数据的存放无规律而言的线性表中进行检索的最佳方法是 顺序查找(线性查找) 。

2. 线性有序表(a 1,a 2,a 3,…,a 256)是从小到大排列的,对一个给定的值k ,用二分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。

设有100个结点,用二分法查找时,最大比较次数是 7 。

3. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 2 ;比较四次查找成功的结点数为 8 ;平均查找长度为 3.7 。

解:显然,平均查找长度=O (log 2n )<5次(25)。

但具体是多少次,则不应当按照公式)1(log 12++=n nn ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。

因为这是在假设n =2m -1的情况下推导出来的公式。

应当用穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.7 !!!4.【计研题2000】折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 比较大小。

5. 在各种查找方法中,平均查找长度与结点个数n 无关的查找方法是 散列查找 。

6. 散列法存储的基本思想是由 关键字的值 决定数据的存储地址。

7. 有一个表长为m 的散列表,初始状态为空,现将n (n<m )个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。

如果这n 个关键码的散列地址都相同,则探测的总次数是 n(n-1)/2=( 1+2+…+n-1) 。

(而任一元素查找次数 ≤n-1)二、单项选择题(每小题1分,共27分)( B )1.在表长为n的链表中进行线性查找,它的平均查找长度为A. ASL=n; B. ASL=(n+1)/2;C. ASL=n +1; D. ASL≈log2(n+1)-1( A )2.【计研题2001】折半查找有序表(4,6,10,12,20,30,50,70,88,100)。

《c语言数据结构》第9章 排序 自测卷 答案

《c语言数据结构》第9章   排序  自测卷  答案

第9章排序自测卷答案姓名班级一、填空题(每空1分,共24分)1. 大多数排序算法都有两个基本的操作:比较(两个关键字的大小)和移动(记录或改变指向记录的指针)。

2.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较3次。

(可约定为,从后向前比较)3.在插入和选择排序中,若初始数据基本正序,则选用插入排序(到尾部);若初始数据基本反序,则选用选择排序。

4.在堆排序和快速排序中,若初始记录接近正序或反序,则选用堆排序;若初始记录基本无序,则最好选用快速排序。

5.对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是O(n2)。

若对其进行快速排序,在最坏的情况下所需要的时间是O(n2)。

6.对于n个记录的集合进行归并排序,所需要的平均时间是O(nlog2n),所需要的附加空间是O(n)。

7.【计研题2000】对于n个记录的表进行2路归并排序,整个归并排序需进行log2n趟(遍),共计移动n log2n次记录。

(即移动到新表中的总次数!共log2n趟,每趟都要移动n个元素)8.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重新排列,则:冒泡排序一趟扫描的结果是H, C, Q, P, A, M, S, R, D, F, X ,Y;初始步长为4的希尔(shell)排序一趟的结果是P, A, C, S, Q, D, F, X , R, H,M, Y;二路归并排序一趟扫描的结果是H, Q, C, Y,A, P, M, S, D, R, F, X ;快速排序一趟扫描的结果是F, H, C, D, P, A, M, Q, R, S, Y,X;堆排序初始建堆的结果是A, D, C, R, F, Q, M, S, Y,P, H, X。

9. 在堆排序、快速排序和归并排序中,若只从存储空间考虑,则应首先选取堆排序方法,其次选取快速排序方法,最后选取归并排序方法;若只从排序结果的稳定性考虑,则应选取归并排序方法;若只从平均情况下最快考虑,则应选取快速排序方法;若只从最坏情况下最快并且要节省内存考虑,则应选取堆排序方法。

数据结构第九章排序习题及答案

数据结构第九章排序习题及答案

数据结构第九章排序习题及答案习题九排序一、单项选择题1.下列内部排序算法中:A.快速排序 B、直接插入排序C、二路归并排序D、简单选择排序E、起泡排序F、堆排序(1) 其比较次数与序列初态无关的算法就是( )(2)不稳定的排序算法就是( )(3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<<="" p="">(4)排序的平均时间复杂度为O(n?logn)的算法就是( )为O(n?n)的算法就是( )2.比较次数与排序的初始状态无关的排序方法就是( )。

A.直接插入排序B.起泡排序C.快速排序D.简单选择排序3.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21 (2) 15 47 25 84 21(3) 15 21 25 84 47 (4) 15 21 25 47 84则采用的排序就是 ( )。

A、选择B、冒泡C、快速D、插入4.下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。

A、选择B、冒泡C、归并D、堆5.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。

A.(38,40,46,56,79,84) B、 (40,38,46,79,56,84)C.(40,38,46,56,79,84) D、 (40,38,46,84,56,79)6.下列排序算法中,在待排序数据已有序时,花费时间反而最多的就是( )排序。

A. 冒泡 B、希尔 C、快速 D、堆7、就平均性能而言,目前最好的内排序方法就是( )排序法。

A、冒泡B、希尔插入C、交换D、快速8、下列排序算法中,占用辅助空间最多的就是:( )A、归并排序B、快速排序C、希尔排序D、堆排序9、若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行 ( )次比较。

《数据结构》习题汇编09-第九章-排序-试题

《数据结构》习题汇编09-第九章-排序-试题

数据结构课程(本科)第九章试题一、单项选择题1.若待排序对象序列在排序前已按其排序码递增顺序排列,则采用()方法比较次数最少。

A. 直接插入排序B. 快速排序C. 归并排序D. 直接选择排序2.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。

A. 起泡排序B. 快速排序C. 直接选择排序D. 堆排序3.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是()。

A. 直接选择排序B. 直接插入排序C. 快速排序D. 起泡排序4.对5个不同的数据元素进行直接插入排序,最多需要进行()次比较?A. 8B. 10C. 15D. 255.如果输入序列是已经排好顺序的,则下列算法中()算法最快结束?A. 起泡排序B. 直接插入排序C. 直接选择排序D. 快速排序6.如果输入序列是已经排好顺序的,则下列算法中()算法最慢结束?A. 起泡排序B. 直接插入排序C. 直接选择排序D. 快速排序7.下列排序算法中()算法是不稳定的。

A. 起泡排序B. 直接插入排序C. 基数排序D. 快速排序8.假设某文件经过内部排序得到100个初始归并段,那么如果要求利用多路平衡归并在3 趟内完成排序,则应取的归并路数至少是()。

A. 3B. 4C. 5D. 69.采用任何基于排序码比较的算法,对5个互异的整数进行排序,至少需要()次比较。

A. 5B. 6C. 7D. 810.下列算法中()算法不具有这样的特性:对某些输入序列,可能不需要移动数据对象即可完成排序。

A. 起泡排序B. 希尔排序C. 快速排序D. 直接选择排序11.使用递归的归并排序算法时,为了保证排序过程的时间复杂度不超过O(nlog2n),必须做到()。

A. 每次序列的划分应该在线性时间内完成B. 每次归并的两个子序列长度接近C. 每次归并在线性时间内完成D. 以上全是12.在基于排序码比较的排序算法中,()算法的最坏情况下的时间复杂度不高于O(nlog2n)。

数据结构第9章-习题

数据结构第9章-习题

第九章查找一、选择题1.若查找每个记录的概率均等, 则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录, 其平均查找长度ASL为( )。

A.(n-1)/....B.n/....C.(n+1)/....D.n2.下面关于二分查找的叙述正确的. .. .A.表必须有序, 表可以顺序方式存储, 也可以链表方式存. C.表必须有序, 而且只能从小到大排列B.表必须有序且表中数据必须是整型, 实型或字符.... D.表必须有序, 且表只能以顺序方式存储3.用二分(对半)查找表的元素的速度比用顺序法.. )A. 必然...B.必然...C.相...D.不能确定4.具有12个关键字的有序表, 折半查找的平均查找长度..).A.3....... B....... C.2....... D.55. 当采用分块查找时, 数据的组织方式为 ( )A. 数据分成若干块, 每块内数据有序B. 数据分成若干块, 每块内数据不必有序, 但块间必须有序, 每块内最大(或最小)的数据组成索引块C.数据分成若干块, 每块内数据有序, 每块内最大(或最小)的数据组成索引块D.数据分成若干块, 每块(除最后一块外)中数据个数需相同6.二叉查找树的查找效率与二叉树的.(1))有关..((2))时其查找效率最低..(1). A.高.....B.结点的多...C.树....D.结点的位置..(2). A.结点太...B.完全二叉...C.呈单枝..D.结点太复杂。

7.对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找失败,它们的平均查找长度是((1).,对于查找成功,他们的平均查找长度是((2))供选择的答案.A.相同.......B.不同的9. 分别以下列序列构造二叉排序树, 与用其它三个序列所构造的结果不同的是( )A. (100, 80, 90, 60, 120, 110, 130)B.(100, 120, 110, 130, 80, 60, 90)C.(100,60.80.90.120,110,130.D.(100,80.60.90.120,130,110)10.在平衡二叉树中插入一个结点后造成了不平衡, 设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作.. .型调整以使其平衡。

[考研类试卷]计算机专业基础综合数据结构(排序)历年真题试卷汇编9.doc

[考研类试卷]计算机专业基础综合数据结构(排序)历年真题试卷汇编9.doc

[考研类试卷]计算机专业基础综合数据结构(排序)历年真题试卷汇编9一、综合题1 如果只要找出一个具有n个元素的集合的第k(1≤k≤n)个最小元素,你所学过的排序方法中哪种最适合?给出实现的思想。

【北方交通大学1998六(10分)】2 设结点个数为n,请问采用堆排序法进行排序,其时间复杂性是多少?请以大O 形式给出,并给出证明。

【上海交通大学2004四(10分)】2 已知待排序的序列为(503,87,512,6l,908,170,897,275,653,462),试完成下列各题。

3 根据以上序列建立一个堆(画出第一步和最后堆的结果图),希望先输出最小值。

4 输出最小值后,如何得到次小值(并画出相应结果图)。

【同济大学2001二(10分)】4 试将关键字序列(56,塾,55,67,46,58,18,88)5 调整成一个初始大顶堆,用二叉树形式说明调整过程;6 简要说明如何从初始大顶堆开始进行排序。

【华中科技大学2007四、24(10分)】7 一组记录的关键字为(50,79,8,56,32,41,85),给出利用重建堆方法建立的初始堆(堆顶最大),并给出堆排序的过程。

【吉林大学2007二、5(4分)】8 已知序列{503,87,512,61,908,170,897,275,653,462)将其调整为堆(大堆顶,即K i≥K2i,K i≥K2i+1)。

【中国海洋大学2006一、4(8分)】9 给定关键字序列(20,18,9,86,72,12,27,40)。

试将该序列建成小根堆。

10 判断下面的每个结点序列是否表示一个堆,如果不是堆,请把它调整成堆。

①100,90,80,60,85,75,20,25,10,70,65,50②100,70,50,20,90,75,60,25,10,85,65,80【复旦大学1997二(8分)】11 全国有10000人参加物理竞赛,只录取成绩优异的前10名,并将他们从高分到低分输出。

第九章排序练习题及答案

第九章排序练习题及答案

置上。
A 归并排序
B 插入排序
C 快速排序
D 选择排序
17.将上万个一组无序并且互不相等的正整数序列,存放于顺序存储结构中,采用( )
方法能够最快地找出其中最大的正整数。
A 快速排序
B 插入排序
C 选择排序
D 归并排序
18 一般情况下,以下四种排序方法中,平均查找长度最小的是
()
A 归并排序
B 快速排序
1a直接插入排序序号101112关键字834063138435965739796115408363138435965739796115406383138435965739796115134063838435965739796115134063838435965739796115133540638384965739796115133540638384965739796115133540576383849639796115133539405763838496796115101335394057637983849661151113353940576163798384961512131535394057616379838496直接选择排序序号101112关键字8340631384359657397961151340638384359657397961151315638384359657397961401315358384639657397961401315353984639657837961401315353940639657837961841315353940579663837961841315353940576163837996841315353940576163837996841315353940576163798396841013153539405761637983968411131535394057616379838496快速排序关键字834063138435965739796115第一趟排序后154063136135795739839684第二趟排序后131563406135795739838496第三趟排序后131539406135576379838496第四趟排序后131535396140576379838496第五趟排序后131535395740616379838496第六趟排序后131535394057616379838496第七趟排序后131535394057616379838496堆排序关键字
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程(本科)第九章试题一、单项选择题1.若待排序对象序列在排序前已按其排序码递增顺序排列,则采用()方法比较次数最少。

A. 直接插入排序B. 快速排序C. 归并排序D. 直接选择排序2.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。

A. 起泡排序B. 快速排序C. 直接选择排序D. 堆排序3.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是()。

A. 直接选择排序B. 直接插入排序C. 快速排序D. 起泡排序4.对5个不同的数据元素进行直接插入排序,最多需要进行()次比较A. 8B. 10C. 15D. 255.如果输入序列是已经排好顺序的,则下列算法中()算法最快结束A. 起泡排序B. 直接插入排序C. 直接选择排序D. 快速排序6.如果输入序列是已经排好顺序的,则下列算法中()算法最慢结束A. 起泡排序B. 直接插入排序C. 直接选择排序D. 快速排序7.下列排序算法中()算法是不稳定的。

A. 起泡排序B. 直接插入排序C. 基数排序D. 快速排序8.假设某文件经过内部排序得到100个初始归并段,那么如果要求利用多路平衡归并在3 趟内完成排序,则应取的归并路数至少是()。

A. 3B. 4C. 5D. 69.采用任何基于排序码比较的算法,对5个互异的整数进行排序,至少需要()次比较。

A. 5B. 6C. 7D. 810.下列算法中()算法不具有这样的特性:对某些输入序列,可能不需要移动数据对象即可完成排序。

A. 起泡排序B. 希尔排序C. 快速排序D. 直接选择排序11.使用递归的归并排序算法时,为了保证排序过程的时间复杂度不超过O(nlog2n),必须做到()。

A. 每次序列的划分应该在线性时间内完成B. 每次归并的两个子序列长度接近C. 每次归并在线性时间内完成D. 以上全是12.在基于排序码比较的排序算法中,()算法的最坏情况下的时间复杂度不高于O(nlog2n)。

A. 起泡排序B. 希尔排序C. 归并排序D. 快速排序13.在下列排序算法中,()算法使用的附加空间与输入序列的长度及初始排列无关。

A. 锦标赛排序B. 快速排序C. 基数排序D. 归并排序14.一个对象序列的排序码为{ 46, 79, 56, 38, 40, 84 },采用快速排序(以位于最左位置的对象为基准而)得到的第一次划分结果为:A. { 38, 46, 79, 56, 40, 84 }B. { 38, 79, 56, 46, 40, 84 }C.{ 40, 38, 46, 79, 56, 84 }D. { 38, 46, 56, 79, 40, 84 }15.如果将所有中国人按照生日(不考虑年份,只考虑月、日)来排序,那么使用下列排序算法中()算法最快。

A. 归并排序B. 希尔排序C. 快速排序D. 基数排序参考答案: 1. A 2. D 3. C 4. B 5. A6. D7. D8. C9. C 10. C11. D 12. C 13. C 14. C 15. D二、填空题1.第i (i = 1, 2, …, n-1) 趟从参加排序的序列中取出第i个元素,把它插入到由第0个~第i-1个元素组成的有序表中适当的位置,此种排序方法叫做________排序。

2.第i (i = 0, 1, …, n-2) 趟从参加排序的序列中第i个~第n-1个元素中挑选出一个最小(大)元素,把它交换到第i个位置,此种排序方法叫做________排序。

3.每次直接或通过基准元素间接比较两个元素,若出现逆序排列,就交换它们的位置,这种排序方法叫做________排序。

4.每次使两个相邻的有序表合并成一个有序表,这种排序方法叫做________排序。

5.在直接选择排序中,排序码比较次数的时间复杂度为O(________)。

6.在直接选择排序中,数据对象移动次数的时间复杂度为O(________)。

7.在堆排序中,对n个对象建立初始堆需要调用________次调整算法。

8.在堆排序中,如果n个对象的初始堆已经建好,那么到排序结束,还需要从堆顶结点出发调用________次调整算法。

9.在堆排序中,对任一个分支结点进行调整运算的时间复杂度为O(________)。

10.对n个数据对象进行堆排序,总的时间复杂度为O(________)。

11.给定一组数据对象的排序码为{ 46, 79, 56, 38, 40, 84 },则利用堆排序方法建立的初始堆(最大堆)为________。

12.快速排序在平均情况下的时间复杂度为O(________)。

13.快速排序在最坏情况下的时间复杂度为O(________)。

14.快速排序在平均情况下的空间复杂度为O(________)。

15.快速排序在最坏情况下的空间复杂度为O(________)。

16.给定一组数据对象的排序码为{46, 79, 56, 38, 40, 84},对其进行一趟快速排序,结果为________。

17.在n个数据对象的二路归并排序中,每趟归并的时间复杂度为O(________)。

18.在n个数据对象的二路归并排序中,整个归并的时间复杂度为O(________)。

参考答案:1. 插入 2. 直接选择 3. 交换4. 两路归并5. n26. n7. n/28. n-1 9. log2n10. nlog2n11. 84, 79, 56, 38, 40, 46 12. nlog2n13. n214. log2n15. n16. [40 38] 46 [79 56 84]17. n 18. nlog2n三、判断题1.直接选择排序是一种稳定的排序方法。

2.若将一批杂乱无章的数据按堆结构组织起来, 则堆中各数据是否必然按自小到大的顺序排列起来。

3.当输入序列已经有序时,起泡排序需要的排序码比较次数比快速排序要少。

4.在任何情况下,快速排序需要进行的排序码比较的次数都是O(nlog2n)。

5.在2048 个互不相同的排序码中选择最小的5个排序码,用堆排序比用锦标赛排序更快。

6.若用m个初始归并段参加k路平衡归并排序,则归并趟数应为log2m。

7.堆排序是一种稳定的排序算法。

8.对于某些输入序列,起泡排序算法可以通过线性次数的排序码比较且无需移动数据对象就可以完成排序。

9.如果输入序列已经排好序,则快速排序算法无需移动任何数据对象就可以完成排序。

10.希尔排序的最后一趟就是起泡排序。

11.任何基于排序码比较的算法,对n个数据对象进行排序时,最坏情况下的时间复杂度不会低于O(nlog2n)。

12.不存在这样一个基于排序码比较的算法:它只通过不超过9次排序码的比较,就可以对任何6个排序码互异的数据对象实现排序。

参考答案: 1. 否 2. 否 3. 是 4. 否 5. 否6. 否7. 否8. 是9. 否10. 是11. 是12. 是四、运算题1.判断以下序列是否是最小堆如果不是, 将它调整为最小堆。

(1) { 100, 86, 48, 73, 35, 39, 42, 57, 66, 21 }(2) { 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 }。

2.在不要求完全排序时,堆排序是一种高效的算法。

这种算法的过程是:(Heapification)把待排序序列看作一棵完全二叉树,通过反复筛选将其调整为堆;(Re-heapification)依次取出堆顶,然后将剩余的记录重新调整为堆。

现考虑序列A = { 23,41,7,5,56 }:(1)给出对应于序列A的最小堆H A(以线性数组表示);(2)给出第一次取出堆顶后,重新调整H A后的结果(以线性数组表示);(3)给出第二次取出堆顶后,重新调整H A后的结果(以线性数组表示)。

3.希尔排序、直接选择排序、快速排序和堆排序是不稳定的排序方法, 试举例说明。

4.给出12个初始归并段,其长度分别为19, 22, 17, 16, 11, 10, 12, 32, 26, 20, 28, 07。

现要做4路外归并排序,试画出表示归并过程的最佳归并树,并计算该归并树的带权路径长度WPL。

5.设输入文件包含以下数据对象的排序码:14, 22, 7, 16, 11, 10, 12, 90, 26, 30, 28, 110。

现采用置换—选择方法生成初始归并段,并假设内存工作区可同时容纳5个数据对象,请画出生成初始归并段的过程。

6.在利用置换—选择方法生成初始归并段时,可另开辟一个与工作区容量相同的辅助存储区(称为储备库)。

当输入对象排序码小于刚输出的门槛LastKey对象的排序码时,不将它存入工作区,而暂存于储备库中,接着输入下一对象的排序码,依次类推,直到储备库满时不再进行输入,而只是从工作区中选择对象输出直至工作区空为止,由此得到一个初始归并段。

然后再将储备库中的对象传送至工作区,重新开始置换—选择。

若设输入文件包含对象的排序码为19, 22, 17, 16, 11, 10, 12, 32, 26, 20, 28, 07。

采用上述方法生成初始归并段,并设工作区可容纳5个对象,请画出生成初始归并段的过程。

7.假设文件有4500个记录,在磁盘上每个页块可放75个记录。

计算机中用于排序的内存区可容纳450个记录。

试问:(1) 可建立多少个初始归并段每个初始归并段有多少记录存放于多少个页块中(2) 应采用几路归并请写出归并过程及每趟需要读写磁盘的页块数。

8.如果某个文件经内排序得到80个初始归并段,试问(1) 若使用多路归并执行3趟完成排序,那么应取的归并路数至少应为多少(2) 如果操作系统要求一个程序同时可用的输入/输出文件的总数不超过15个,则按多路归并至少需要几趟可以完成排序如果限定这个趟数,可取的最低路数是多少参考答案:1.(1) { 100, 86, 48, 73, 35, 39, 42, 57, 66, 21 }为最大堆。

调整为最小堆后为{ 21, 35, 39, 57, 86, 48, 42, 73, 66, 100 }(2) { 12, 70, 33, 65, 24, 56, 48, 92, 86, 33 }不是最小堆。

调整为最小堆后为{ 12, 24, 33, 65, 33, 56, 48, 92, 86, 70 }2.(1) 建堆结果H A =52374156(2) 第一次取出堆顶,并重新调整后H A =7235641(3) 第二次取出堆顶,并重新调整后H A =2341563.(1) 希尔排序{ 512 275 275* 061 }增量为2{ 275* 061 512 275 }增量为1{ 061 275* 275 512 }(2) 直接选择排序{ 275 275* 512 061 } i = 1{061275* 512 275 } i = 2{061 275* 512 275 } i = 3{061 275* 275 512 }(3) 快速排序{ 512 275 275* }{ 275* 275 512}(4) 堆排序{ 275 275* 061 170 }已经是最大堆,交换275与170{ 170 275* 061 275}对前3个调整{ 275* 170 061 275 }前3个最大堆,交换275*与061{ 061 170 275* 275 }对前2个调整{ 170 061 275* 275 } 前2个最大堆,交换170与061{ 061 170 275* 275 }4. 设初始归并段个数n = 12,外归并路数k = 4,计算(n-1) % (k-1) = 11 % 3 = 2 ≠ 0,必须补k-2-1= 1个长度为0的空归并段,才能构造k 路归并树。

相关文档
最新文档