第10章 内部排序习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第10章内部排序习题

一、单项选择题

1.若待排序对象序列在排序前已按其排序码递增顺序排列,则采用()方法比较次数最少。

A. 直接插入排序

B. 快速排序

C. 归并排序

D. 直接选择排序

2.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。

A. 起泡排序

B. 快速排序

C. 直接选择排序

D. 堆排序

3.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,

直到子序列为空或只剩一个元素为止。这样的排序方法是()。

A. 直接选择排序

B. 直接插入排序

C. 快速排序

D. 起泡排序

4.对5个不同的数据元素进行直接插入排序,最多需要进行()次比较?

A. 8

B. 10

C. 15

D. 25

5.如果输入序列是已经排好顺序的,则下列算法中()算法最快结束?

A. 起泡排序

B. 直接插入排序

C. 直接选择排序

D. 快速排序

6.如果输入序列是已经排好顺序的,则下列算法中()算法最慢结束?

A. 起泡排序

B. 直接插入排序

C. 直接选择排序

D. 快速排序

7.下列排序算法中()算法是不稳定的。

A. 起泡排序

B. 直接插入排序

C. 基数排序

D. 快速排序

8.

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

A. 5

B. 6

C. 7

D. 8

10.下列算法中()算法不具有这样的特性:对某些输入序列,可能不需要移动数据对象即可完成

排序。

A. 起泡排序

B. 希尔排序

C. 快速排序

D. 直接选择排序

11.使用递归的归并排序算法时,为了保证排序过程的时间复杂度不超过O(nlog2n),必须做到()。

A. 每次序列的划分应该在线性时间内完成

B. 每次归并的两个子序列长度接近

C. 每次归并在线性时间内完成

D. 以上全是

12.在基于排序码比较的排序算法中,()算法的最坏情况下的时间复杂度不高于O(nlog2n)。

A. 起泡排序

B. 希尔排序

C. 归并排序

D. 快速排序

13.一个对象序列的排序码为{ 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 }

参考答案: 1. A 2. D 3. C 4. B 5. A

6. D

7. D

8. C

9. C 10. C

11. D 12. C 13. C

二、填空题

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. n2

6. n

7. ⎣n/2⎦8. n-1 9. log2n

10. nlog2n 11. 84, 79, 56, 38, 40, 46 12. nlog2n

13. n214. log2n 15. n

16. [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.希尔排序的最后一趟就是起泡排序。

相关文档
最新文档