数据结构复习题-第10章答案2014-6-16
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章内部排序
一、选择题(每小题1分,共10分)
1.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后放在已排序
序列的合适位置,该排序方法称为( A )排序法。
A.插入排序
B.选择排序
C.希尔排序
D.二路归并排序
2.下列排序算法中( C )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A.选择
B.冒泡
C.归并
D.堆
3.若一组记录的排序码为(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
4.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( C )。
A.希尔排序
B.冒泡排序
C.插入排序
D.选择排序
5.为实现快速排序算法,待排序序列宜采用的存储方式是( A )。
A. 顺序存储
B. 散列存储
C. 链式存储
D. 索引存储
6.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆
为( B )。
A. 79, 46, 56, 38, 40, 84
B. 84, 79, 56, 38, 40, 46
C. 84, 79, 56, 46, 40, 38
D. 84, 56, 79, 40, 46, 38
7.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入
已排序序列的正确位置上的方法,称为( C )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
8.在所有的排序方法中,关键字比较的次数与记录的初始排列次序无关的是( D )。A.希尔排序B.冒泡排序C.直接插入排序D.直接选择排序9.堆是一种有用的数据结构。下列关键码序列( D )是一个堆。
A.94,31,53,23,16,72 B.94,53,31,72,16,23 C.16,53,23,94,31,72 D.16,31,23,94,53,72
10.堆排序是一种( B )排序。
A .插入
B .选择
C .交换
D .归并
11.( D )在链表中进行操作比在顺序表中进行操作效率高。
A .顺序查找
B .折半查找
C .分块查找
D .插入
12.直接选择排序的时间复杂度为( D )。(n 为元素个数)
A.O(n) B.O(log2 n) C.O(nlog2 n) D.O(n2 )
二、判断题(每小题1分,共10分)
1.对于n个记录的集合进行快速排序,所需要的平均时间是O(nlogn)。(对)
2.(101,88,46,70,34,39,45,58,66,10)是堆。( 对)
3.如果某种排序算法是不稳定的.则该方法没有实际应用价值。( ×)
4.外部排序是把外存文件调入内存,可利用内部排序的方法进行排序,因此排序所花的时间
取决于内部排序的时间。(×)
5.具有n个结点的二叉排序树有多种,其中树高最小的二叉排序树是最佳的。(√)
6. 在待排序的记录集中,存在多个具有相同键值的记录,若经过排序,这些记录的相对次
序仍然保持不变,称这种排序为稳定排序。( √)
7.在平衡二叉树中,任意结点左右子树的高度差(绝对值)不超过1。( √)
8.冒泡排序算法关键字比较的次数与记录的初始排列次序无关。(×)
三、填空题(每空1分,共10分)
1.不仅需要使用内存,而且还要使用外存的排序称为。答:外部排序
2.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的和记录的。答:比较、移动
3.直接插入排序用监视哨的作用是_______。答:免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。
4.排序方法有________、_______、________、________、________。答:插入排序交换排序选择排序归并排序基数排序
5.稳定的排序方法有________、_______、________、________。答:直接插入排序、冒泡排序、归并排序、基数排序、折半插入排序
6.不稳定的排序方法有________、_______、________、________。答:希尔排序、快速排序、简单选择排序(直接选择排序)、堆排序、树形选择排序
7.稳定的排序方法有________、_______ ;不稳定的排序方法有________、_______ 。
四、简答题(共10分)
1.简述快速排序算法的基本思想。
答:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
答案二:在待排序的n个记录中任取一个记录(通常取第一个记录),以该记录作为标准,将所有记录分成两组,使第一组中各记录的关键字都小于等于该标准关键字,而第二组中各记录的值都大于等于该标准关键字,并把该记录排放在这两组的中间位置,这样遍历一趟文件后,将文件以该记录为界分为两部分,然后再对上面两组分别重复上述过程,直到每一部分仅剩一个记录为止。
2.对于下列各种排序方法,哪些是稳定的?哪些是不稳定的?
(1)直接插入排序;(2)希尔排序;(3)快速排序;
(4)堆排序;(5)归并排序;(6)基数排序。
答:(1)(5)(6)是稳定的排序方法;(2)(3)(4)是不稳定的排序方法。
3.希尔排序、简单选择排序、快速排序和堆排序是不稳定的排序方法,试举例说明。
答:(1) 希尔排序{ 512 275 275* 061} 增量为2
{ 275* 061 512 275 } 增量为1
{ 061 275* 275 512 }
(2) 直接选择排序{ 275 275* 512 061 } i = 1
{ 061 275* 512 275 } i = 2
{ 061 275* 512 275 } i = 3
{ 061 275* 275 512 }
(3) 快速排序{ 512 275 275* }
{ 275* 275 512 }
(4) 堆排序{ 275 275* 061 170 } 已经是最大堆,交换275与170
{ 170 275* 061 275 } 对前3个调整
{ 275* 170 061 275 } 前3个最大堆,交换275*与061
{ 061 170 275* 275 } 对前2个调整