完整word版数据结构第八章排序Word文件下载.docx
- 文档编号:16032922
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:16
- 大小:95.85KB
完整word版数据结构第八章排序Word文件下载.docx
《完整word版数据结构第八章排序Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整word版数据结构第八章排序Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为()。
A.希尔排序B.冒泡排序C.插入排序D.选择排序
14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做()。
A.堆排序B.快速排序C.冒泡排序D.Shell排序
15.排序方法中,从未排序序列中挑选记录,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。
A.希尔排序B.归并排序C.插入排序D.选择排序
16.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,记录序列的变化情况如下:
(1)(25,84,21,47,15,27,68,35,40)
(2)(20,15,21,25,47,27,68,35,84)
(3)(15,20,21,25,35,27,47,68,84)
(4)(15,20,21,25,27,35,47,68,84)则所采用的排序方法是()。
A.选择排序B.希尔排序C.归并排序D.快速排序
17.一组记录的关键字为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序表,用归并排序方法对该序列进行一趟归并后的结果为()。
A.(15,25,35,50,20,40,80,85,36,70)
B.(15,25,35,50,80,20,85,40,70,36)
C.(15,25,50,35,80,85,20,36,40,70)
D.(15,25,35,50,80,20,36,40,70,85)
18.n个记录的直接插入排序所需记录关键码的最大比较次数为()。
A.nlog2nB.n2/2
C.(n+2)(n_1)/2D.n-l
19.n个记录的直接插入排序所需的记录最小移动次数为()。
A.2(n-l)B.n2/2
C.(n+3)(n-2)/2D.2n20.对以下关键字序列用快速排序法进行排序,()的情况排序最慢。
A.{19,23,3,15,7,21,28}
B.{23,21,28,15,19,3,7}
C.{19,7,15,28,23,21,3}
D.{3,7,15,19,21,23,28}
21.快速排序在()情况下最不利于发挥其长处,在()情况下最易发挥其长处。
A.被排序的数据量很大
B.被排序的数据已基本有序
C.被排序的数据完全无序
D.被排序的数据中最大的值与最小值相差不大
E.要排序的数据中含有多个相同值
22.一组记录的关键字为(45,80,55,40,42,85),则利用快速排序的方法,以第一个记录为基准得到一次划分结果是()。
A.(40,42,45,55,80,85).
B.(42,40,45,80,55,85)
C.(42,40,45,55,80,85)
D.(42,40,45,85,55,80)
23.对n个记录的线性表进行快速排序,为减少算法的递归深度,以下叙述正确的是()。
A.每次分区后,先处理较短的部分
B.每次分区后,先处理较长的部分
C.与算法每次分区后的处理顺序无关
D.以上都不对
24.直接插入排序和冒泡排序的平均时间复杂度为(),若初始数据有序(即正序),
则时间复杂度为()。
A.0(n)B.0(log2n)C.0(nlog2n)D.O(n2)
25.一组记录的关键字为(45,80,55,40,42,85),则利用堆排序的方法建立的初始堆为()。
A.(80,45,55,40,42,85)
B.(85,80,55,40,42,45)
C.(85,80,55,45,42,40)
D.(85,55,80,42,45,40)26.下列序列中是堆的有()。
A.(12,70,33,65,24,56,48,92,86,33)
B.(100,86,48,73,35,39,42,57,66,21)
C.(103,56,97,33,66,23,42,52,30,12)
D.(5,56,20,23,40,38,29,61,35,76)
27.设有1000个无序的记录,希望用最快的速度挑选出前20个最大的记录,最好选用()算法。
A.冒泡排序B.归并排序C.堆排序D.基数排序28.下列排序算法中,()算法会出现下面情况:
在最后一趟结束之前,所有记录不在其最终的位置上。
A.堆排序B.冒泡排序C.快速排序D.插入排序
29.在含有n个记录的小根堆(堆顶记录最小)中,关键字最大的记录可能存储在()
位置上。
A.Ln/21B.Ln/2J-2C.1D.Ln/2_1+330.已知数据表A中每个记录距其最终位置不远,则采用()算法最省时间。
A.堆排序B.插入排序
C.直接选择排序D.快速排序
31.下列排序算法中,某一趟(轮)结束后未必能选出一个记录放在其最终位置上的是()。
A.堆排序B.冒泡排序
C.直接插入排序D.快速排序
32.已知待排序的n个记录可分为n/k个组,每个组包含k个记录,且任一组内的各记录均分别大于前一组内的所有记录并小于后一组内的所有记录,若采用基于比较的排序,其时间下界应为()。
A.O(nlog2n)B.0(nlog2k)
C.0(klog2n)D.0(klog2k)33.若要尽可能地完成对实数数组的排序,且要求排序是稳定的,则应选()。
A.快速排序B.堆排序
C.归并排序D.基数排序
34.在含有n个记录的大根堆(堆顶记录最大)中,关键字最小的记录可能存储在()
A.Ln/21B.Ln/2_1-1
C.1D.Ln/2_1+1
35.对任意的7个关键字迸行排序,至少要进行()次关键字之间的两两比较。
A.13B.14
C.15D.16
二、填空题
1.排序是将一组任意排列的记录按的值从小到大或从大到小重新排列成有序的
序列。
2.在排序前,关键字值相等的不同记录间的前后相对位置保持的排序方法称为
稳定的排序方法。
3.在排序前,关键字值相等的不同记录间的前后相对位置的排序方法称为不稳
定的排序方法。
4.外部排序是指在排序前被排序的全部数据都存储在计算机的存储器中。
5.写出一种不稳定的排序方法的名称。
6.在直接插入排序的方法中,当需要将第f个数据插入时,此时前i-l个数据是
的。
7.对一个基本有序的数据进行排序排序方法运算次数最小。
8.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较次。
9.在利用快速排序方法对一组记录(54,38,96,23,15,72,60,45,83)进行快速
排序时,递归调用而使用的栈所能达到最大深度为,共递归调用的次数为,其
中第二次递归调用是对组进行快速排序。
10.在堆排序、快速排序和归并排序中,若只从存储空间考虑,则应首先选取方法,其次选取,最后选取方法;
若只从排序结果的稳定性考虑,则应选取;
若只
从平均情况下排序最快考虑,则应选取;
若只从最坏情况下排序最快并且要节省内存
考虑,则应选取方法。
11.在堆排序和快速排序中,若原始记录接近正序或反序,则选用,若原始记录
无序,则最好选用。
12.在考虑如何选择排序中,若初始数据基本正序,则选用;
若初始数据基本
反序,则选用。
13.对n个记录的序列进行冒泡排序时,最少的比较次数是。
三、简答题
1.已知序列:
{17,18,60,40,7,32,73,65,85),请给出采用冒泡排序法对该序列作升序排序时每一趟的结果。
2.已知序列:
{503,87,512,61,908,170,897,275,653,462),请给出采用快速排序法对该序列作升序排序时每一趟的结果。
3.已知序列:
{503,87,512,61,908,170,897,275,653,462),请给出采用基数排序法对该序列作升序排序时的每一趟的结果。
4.已知序列:
{503,17,512,908,170,897,275,653,426,154,509,612,677,765,703,941),请给出采用希尔排序法(Dl=8)对该序列作升序排序时每一趟的结果。
5.已知序列:
{70,83,100,65,10,32,7,9),请给出采用插入排序法对该序列作升序排序时每一趟的结果。
6.已知序列:
{10,18,4,3,6,12,1,9,18,8),请给出采用希尔排序法对该序列作升序排序时每一趟的结果。
四、算法设计题
1.编写一个对给定的环形双向链表进行简单插入排序的函数。
2.编写一个下沉式“冒泡”函数。
3.编写一个对给定环形双向链表进行简单选择排序的函数。
4.如果把堆定义成:
一种拟满树且每个结点的值既小于左孩子又小于右孩子,请写一函数建立一个初始堆。
5.设计一个函数修改冒泡排序过程以实现双向冒泡排序。
6.已知奇偶转换排序如下所述:
第一趟对所有奇数的i,将a[i]和a[i+l]进行比较,第
二趟对所有偶数的i,将a[i]和a[i+1]进行比较,每次比较时若s[i]>
s[i+1],则将两者交换,以后重复上述两趟过程交换进行,直至整个数组有序。
(1)试问排序结束的条件是什么?
(2)编写结果实现上述排序过程的算法。
7.采用单链表作存储结构,编写一个采用选择排序方法进行升序排序的函数。
8.利用一维数组A可以对n个整数进行排序。
其中一种排序算法的处理思想是:
将n个整数分别作为数组A的n个记录的值,每次(即第i次)从记录A[i]-A[n]中挑选出最小
的一个记录A[k](i≤k≤n),然后将A[n]与A[i]换位。
这样反复n次完成排序。
编写实现上述算法的函数
第八章排序
第8章排序
1.D
2.C
3.A
4.C
5.A
6.C
8.B
9.D
10.A
11.B
12.A
13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 数据结构 第八 排序
![提示](https://static.bdocx.com/images/bang_tan.gif)