文档库 最新最全的文档下载
当前位置:文档库 › 第九章自测题答案

第九章自测题答案

第九章自测题答案
第九章自测题答案

第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) 。

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分,共18分)

(C)1.将5个不同的数据进行排序,至多需要比较次。

A. 8 B. 9 C. 10 D.25

(C)2.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,

将其放入已排序序列的正确位置上的方法,称为

A.希尔排序B. 冒泡排序C.插入排序D. 选择排序

(D)3. 排序方法中,从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为

A. 希尔排序B. 归并排序 C. 插入排序D.选择排序

(C)4.对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。

A.从小到大排列好的 B. 从大到小排列好的C.元素无序D.元素基本有序

(D)5.对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为

A. n+1B.n C.n-1 D. n(n-1)/2

(前3个答案都太小了)

(C)6.快速排序在下列哪种情况下最易发挥其长处。

A. 被排序的数据中含有多个相同排序码B.被排序的数据已基本有序

C. 被排序的数据完全无序

D.被排序的数据中的最大值和最小值相差悬殊

(B)7. 【计研题2001】对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是

A.O(n)

B.O(n2)C.O(nlog2n) D.O(n3)

(C)8.若一组记录的排序码为(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,84D.40, 38,46, 84, 56, 79

(A&D)9.【计研题2001】在最好情况下,下列排序算法中排序算法所需比较关键字次数最少。

A.冒泡B.归并C.快速 D.直接插入

(仅n—1次!)

(A)11.将5个不同的数据进行排序,至少需要比较次。

A. 4 B. 5 C. 6 D.7

( D)12.下列关键字序列中, 是堆。

A.16,72,31,23,94,53 B.94,23,31, 72, 16,53C.16,53,23,94,31, 72 D. 16, 23, 53,31, 94,72

(B)13.堆是一种排序。

A. 插入 B.选择 C. 交换D.归并

( C)14.堆的形状是一棵

A. 二叉排序树 B.满二叉树C.完全二叉树D.平衡二叉树

(B)15.若一组记录的排序码为(46, 79,56, 38,40,84),则利用堆排序的方法建立的初始堆为

A. 79, 46, 56, 38, 40, 84B. 84, 79,56, 38,40,46

C. 84,79, 56, 46, 40,38D.84,56, 79, 40, 46, 38

( C )17. 下述几种排序方法中,要求内存最大的是

A.插入排序B.快速排序C. 归并排序D.选择排序

(B)18.目前以比较为基础的内部排序方法中,其比较次数与待排序的记录的初始排列状态无关的是A. 插入排序 B. 二分插入排序 C. 快速排序D.冒泡排序

四、【全国专升本类似题】【类严题集10.1①】以关键字序列(256,301,751,129,937,863,742,6

94,076,438)为例,分别写出执行以下算法的各趟排序结束时,关键字序列的状态,并说明这些排序方法中,哪些易于在链表(包括各种单、双、循环链表)上实现?

①直接插入排序②希尔排序③冒泡排序④快速排序

⑤直接选择排序⑥堆排序⑦归并排序⑧基数排序(8分)

解:先回答第2问: ①⑤⑦⑧皆易于在链表上实现。

①直接插入排序的中间过程如下:②希尔排序的中间过程如下:

③冒泡排序的中间过程如下: ④快速排序的中间过程如下:

⑤直接选择排序的中间过程如下:⑥堆排序(大根堆)的中间过程如下:

⑦归并排序排序的中间过程如下:

⑧基数排序的中间过程如下:

相关文档