内容正文:
第八章 排序
一、填空题
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、对于n个元素的表进行2路归并排序,完成整个归并排序需进行 log2n 趟(遍)。
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. 在堆排序、快速排序和归并排序中,若只从存储空间考虑,则应首先选取 堆排序 方法,其次选取 快速排序 方法,最后选取 归并排序 方法;若只从排序结果的稳定性考虑,应选取 归并排序 ;若只从平均情况下最快考虑,则应选取快速排序 方法;
10、具有n个结点的“类完全二叉树”与“完全二叉树”相同之处是:剪除各自的最后一层的叶子,它们都是 满二叉树 。
二、单项选择题
1、将5个不同的数据进行直接插入排序,至多需要比较次数为。 C
A、8 B、9 C、10 D、25
2、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为 C
A、希尔排序 B、冒泡排序 C、插入排序 D、选择排序
3、从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为 D
A、希尔排序 B、归并排序 C、插入排序 D、选择排序
4、对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。 C
A、从小到大排列好的 B、从大到小排列好的
C、元素无序 D、元素基本有序
5、快速排序在下列哪种情况下最易发挥其长处。 C
A、被排序的数据中含有多个相同排序码 B、被排序的数据已基本有序
C、被排序的数据完全无序 D、 被排序的数据中的最大值和最小值相差悬殊
6、对有n个元素的表作快速排序,在最坏情况下,算法的时间复杂度是 B
A、O(n) B、O(n2) C、O(nlog2n) D、O(n3)
7、若一组元素的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个元素为基准得到的一次划分结果为。 C
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
8、下列序列中,哪一个是堆 D
A、16, 72, 31, 23, 94, 53 B、94, 23, 31, 72, 16, 53
C 16, 53, 23, 94,31, 72 D、16, 23, 53, 31, 94, 72
9、堆排序归与那一类。 B
A、插入 B