数据结构习题精编排序Word文件下载.docx
《数据结构习题精编排序Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构习题精编排序Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
6.下列排序方法中,最好与最坏时间复杂度不相同的排序方法是
A.堆排序B.冒泡排序C.归并排序D.直接选择排序
7.下列排序方法中,排序过程中关键字的比较次数与记录初始排列无关的是
A.堆排序B.快速排序C.简单选择排序D.直接插入排序
8.堆排序平均执行的时间复杂度和需要附加的存储空间复杂度分别是
A.O(nlog2n)和O
(1)B.O(n2)和O
(1)
C.O(nlog2n)和O(n)D.O(n2)和O(n)
9.直接插入排序在最好情况下的时间复杂度为
A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)
10.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有
序的子表中的适当位置,则该排序方法称为
A.堆排序B.归并排序C.插入排序D.冒泡排序
11.如果在排序过程中,每次从未排序的记录中挑出最小(或最大)关键字的记录,
加入到已排序记录的末尾,该排序方法是
A.堆排序B.冒泡排序C.直接插入排序D.简单选择排序
12.在采用下列某种排序方法进行排序时,出现这样一个情况:
在最后一趟开始之前,
所有元素都不在其最终的位置上。
该排序方法是
A.堆排序B.冒泡排序C.快速排序D.直接插入排序
13.在待排序数据已有序时,花费时间反而最多的排序方法是
A.堆排序B.冒泡排序C.快速排序D.希尔排序
14.设某数据表中有10000个无序的元素,如果仅要求选出其中最大的10个元素,最
好采用的排序方法为
A.堆排序B.快速排序C.冒泡排序D.直接选择排序
15.下列排序方法中,需要辅助存储空间为O(n)的是
A.堆排序B.希尔排序C.快速排序D.归并排序
16.借助于“比较”进行排序的算法在最坏情况下能达到的最好时间复杂度为
A.O(log2n)B.O(n)C.O(nlog2n)D.O(n2)
17.用直接插入排序方法对下面四个序列进行非递减有序排序,元素比较次数最少的是
A.21,32,46,40,80,69,90,94B.32,40,21,46,69,94,90,80
C.90,69,80,46,21,32,94,40D.94,32,40,90,80,46,21,69
18.对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排
序的结果为
A.(19,23,34,56,67,78,88,92)B.(19,23,56,34,78,67,88,92)
C.(19,23,67,56,34,78,92,88)D.(23,56,78,66,88,92,19,34)
19.对序列{15,9,7,8,20,1,4}用希尔排序方法排序,经一趟后序列变为
{15,l,4,8,20,9,7},则该次采用的增量是
A.lB.2C.3D.4
20.已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该序列
按从小到大排序,经过一趟冒泡排序后的序列为
A.16,28,34,54,62,60,73,26,43,95
B.16,28,34,54,73,62,60,26,43,95
C.28,16,34,54,62,60,73,26,43,95
D.28,16,34,54,62,73,60,26,43,95
21.设有一组初始关键字值序列为(49,81,55,36,44,88),则利用快速排序
的方法,以第一个关键字值为基准得到的一次划分为
A.36,44,49,55,81,88B.44,36,49,55,81,88
C.44,36,49,81,55,88D.44,36,49,55,88,81
22.对下列关键字序列用快速排序法进行排序时,速度最快的情形是
A.{1,2,3,4,5,6,7}B.{4,2,3,7,6,5,1}
C.{4,6,1,3,2,5,7}D.{6,5,7,3,4,1,2}
23.采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是
A.递归次数与初始数据的排列次数无关
B.递归次数与每次划分后得到的分区处理顺序无关
C.每次划分后,先处理较长的分区可以减少递归次数
D.每次划分后,先处理较短的分区可以减少递归次数
24.为实现快速排序算法,待排序序列宜采用的存储方式是
A.顺序存储B.链式存储C.散列存储D.索引存储
25.在对n个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字
元素,则在进行第i趟排序之前,无序区中关键字元素的个数为
A.iB.i+1C.n-iD.n-i+1
26.一组记录的关键字值为(46,74,18,53,14,20,40,38,86,65),利用堆排
序的方法建立的初始堆为
A.(14,18,20,38,40,46,53,65,74,86)
B.(14,18,38,46,65,40,20,53,86,74)
C.(14,38,18,46,65,20,40,53,86,74)
D.(14,86,20,38,40,46,53,65,74,18)
27.下列关键码序列中,属于堆的是
A.(15,30,22,93,52,71)B.(15,52,22,93,30,71)
C.(15,71,30,22,93,52)D.(93,30,52,22,15,71)
28.已知序列25、13、10、12、9是大根堆,在序列尾部插入新元素,将其再调整为大
根堆,调整过程中元素之间进行的比较次数是
A.1B.2C.4D.5
29.已知关键字序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键
字3,调整后得到的小根堆是
A.3,5,12,8,28,20,15,22,19
B.3,5,12,19,20,15,22,8,28
C.3,8,12,5,20,15,22,28,19
D.3,12,5,8,28,20,15,22,19
30.对记录序列(314,298,508,123,486,145)依次按个位和十位进行两趟基数排
序之后所得结果为
A.123,145,298,314,486,508B.298,123,508,486,145,314
C.486,314,123,145,508,298D.508,314,123,145,486,298
31.对数据序列(10,9,6,8,20,1,3)进行排序,第一趟排序后的序列变为
(3,9,1,8,20,6,10),则采用的排序方法是
A.冒泡排序B.希尔排序C.快速排序D.简单选择排序
32.对序列(22,86,19,49,12,30,65,35,18)进行一趟排序后得到的结果为
(18,12,19,22,49,30,65,35,86),则采用的排序方法是
A.冒泡排序B.快速排序C.直接插入排序D.简单选择排序
33.若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到
的第二趟排序后的结果,则该排序方法只能是
A.冒泡排序B.直接插入排序C.简单选择排序D.二路归并排序
34.若数据元素序列2,1,4,9,8,10,6,20是采用下列排序方法之一得到的第
二趟排序后的结果,则该排序方法只能是
A.快速排序B.冒泡排序C.直接插入排序D.简单选择排序
35.对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下:
第一趟:
2,12,16,5,10,88
第二趟:
2,12,5,10,16,88
第三趟:
2,5,10,12,16,88
则采用的排序方法可能是
A.冒泡排序B.希尔排序C.归并排序D.基数排序
二、填空题
1.排序通常可分为内部排序和外部排序,其中内部排序是指排序的整个过程中,数据全部存放在计算机的__________中。
2.在插入和选择排序中,若初始数据基本正序,则选用________;
若初始数据基本反序,则选用________。
3.在排序方法中,依次将每个记录插入到一个有序的子序列中去,即在第i(i≥1)遍整理时,r1、r2、…、ri-1已经是排好顺序的子序列,取出第i个元素ri,在已排好序的子序列里为ri找到一个合适的位置,并把它插到该位置上。
这种排序方法被称为___________。
4.在待排序的n个记录中任取一个记录,以该记录的键值作为标准,将所有记录分为两组,使得第一组中各记录的键值均小于或等于该键值,第二组中的各记录的键值均大于该键值;
然后将该记录排在两组中间。
再对所分成的两组分别使用上述方法,直到所有记录都排在适当位置为止。
这种排序方法称为________________。
5.不受待排序初始序列的影响,时间复杂度为O(n2)的排序算法是___________,在排序算法的最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是______________。
6.若希望只进行8趟排序便能在4800个元素中找出其中值最小的8个元素,并且要求排序过程中所进行的关键字比较次数尽可能少,则应该选用________________排序方法。
7.设待排序记录的个数为n,则快速排序的最小递归深度是___________,最大递归深度是________________。
8.对n个记录的表r[1..n]进行简单选择排序,所需进行的关键字间的比较次数为_______。
9.对于7个元素的集合{1,2,3,4,5,6,7}进行快速排序,具有最小比较和交换次数的初始排列次序为________________。
10.若对关键字序列(43,2,80,48,26,57,15,73,21,24,66)进行一趟增量为3的希尔排序,则得到的结果序列为___________________。
11.设有关键字序列(43,2,80,48,26,57,15,73,21,24,66),利用快速排序的方法,以第一个记录关键字43为基准得到的一次划分结果为_____________________。
12.利用筛选法将关键字序列(43,2,80,48,26,57,15,73,21,24,66)建成的大根堆为________________________________。
13.设有一组记录关键字(54,38,96,23,15,72,60,45,83),分别采用不同的排序方法进行非递减有序排序,试写出第1趟排序结束后的结果序列。
(1)直接插入排序:
_________________________________。
(2)增量为3的希尔排序:
(3)简单选择排序:
(4)