数据结构与算法-Chapter10-外部排序-练习题

选择题

1、在所有的排序方法中,( )不是稳定的排序方法。
A. 希尔排序 B. 冒泡排序 C. 直接插入排序 D. 归并排序

2、设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用( )方法。
A. 冒泡排序 B. 快速排序 C. 堆排序 D. 基数排序

3、在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。
A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序

4、一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( )。
A. 79,46,56,38,40,80 B. 84,79,56,38,40,46
C. 84,79,56,46,40,38 D. 84,56,79,40,46,38

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、一组记录的排序码为(25,48,16,35,79,82,23,40,36,72),其中含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。
A. 16,25,35,48,23,40,79,82,36,72 B. 16,25,35,48,79,82,23,36,40,72
C. 16,25,48,35,79,82,23,36,40,72 D. 16,25,35,48,79,23,36,40,72,82

7、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( )。
A. 希尔排序 B. 冒泡排序 C. 插入排序 D. 选择排序

8、排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为( )。
A. 希尔排序 B. 归并排序 C. 插入排序 D. 选择排序

9、用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:
⑴ 25,84,21,47,15,27,68,35,20 ⑵ 20,15,21,25,47,27,68,35,84
⑶ 15,20,21,25,35,27,47,68,84 ⑷ 15,20,21,25,27,35,47,68,84,
则所采用的排序方法是( )。
A. 选择排序 B. 希尔排序 C. 归并排序 D. 快速排序

10、下述几种排序方法中,不是基于比较的排序方法是( )。
A. 插入排序 B. 选择排序 C. 快速排序 D. 基数排序

11、下述几种排序方法中,要求内存量最大的是( )。
A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序

12、快速排序方法在( )情况下最不利于发挥其长处。
A. 要排序的数据量太大 B. 要排序的数据中含有多个相同值
C. 要排序的数据已基本有序 D. 要排序的数据个数为奇数

13、对n个不同的排序码进行冒泡排序,在( )情况下比较次数最多。
A. 从小到大排列 B.从大到小排列 C. 元素无序 D.元素基本有序

14、对n个不同的排序码进行冒泡排序,在元素无序时比较的次数为( )。
A. n+1 B. n C. n-1 D. n(n-1)/2

15、快速排序方法在( C )情况下最利于发挥其长处。
A. 被排序的数据中含有多个相同排序码
B. 要排序的数据已基本有序
C. 要排序的数据完全无序
D. 被排序的数据中的最大值和最小值相差悬殊

16、将5个不同的数据进行排序,至少需要比较( )次。
A. 4 B. 5 C. 6 D. 7

17、将5个不同的数据进行排序,至多需要比较( )次。
A. 8 B. 9 C. 10 D. 25

18、下列关键字序列中( )是堆。
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

19、堆是一种( )排序。
A.插入 B. 选择 C. 交换 D. 归并

20、堆的形状是一棵( )。
A. 二叉排序树 B. 满二叉树 C. 完全二叉树 D. 平衡二叉树

填空题

1、在对一组记录{54,38,96,23,15,72,60,45,83}进行直接插入排序时,当把第七个记录60插入到有序表时,需比较( 3 )次。

2、在利用快速排序方法对一组记录{54,38,96,23,15,72,60,45,83}进行快速排序时,递归调用而使用的栈所能达到的最大深度为(4),共需递归调用的次数为( 5 ),其中第二次递归调用是对( 第一次划分后的 )一组记录进行快速排序。

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

4、稳定的排序方法是指( 排序后,关键字相同的记录的先后次序不发生变化)。

5、在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,平均比较次数最少的排序是( 基数排序),需要内存容量最多的是( 归并排序)。

6、在堆排序和快速排序中,若原始记录接近正序或反序,则选用(堆排序),若原始记录无序,则最好选用( 快速排序 )。

7、在插入和选择排序中,若初始数据基本有序,则选用( 插入排序);若初始数据基本反序,则选用( 选择排序 )。

8、对n个元素的序列进行冒泡排序时,最少的比较次数是(n-1)。

9、对于n个记录的集合进行归并排序,则需要的平均时间是(nlogn )。

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

11、对于n个记录的集合进行归并排序,所需要的附加空间是( O(n) )。

12、对于n个记录的集合进行快速排序,在最坏情况下所需时间是( O(n2))。

13、设要将序列{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的希尔排序一趟的结果是( {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 } )。

14、大多数排序算法都有两个基本的操作:( 比较)和( 交换 )。

简答题

1、对于给定关键字序列{503,087,512,061,908,170,897,275,653,462},分别写出在直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序和基数排序运行上述数据的各趟结果。

2、有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问什么排序方法的时间复杂性最佳?为什么?

发布了393 篇原创文章 · 获赞 651 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104092872
今日推荐