1、大多数排序算法都有两个基本的操作:
。
2、在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较
次。
3、在插入和选择排序中,若初始数据基本正序,则选用
;若初始数据基本反序,则选用
。
4、在堆排序和快速排序中,若初始记录接近正序或反序,则选用
;若初始记录基本无序,则最好选用
。
5、对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是
。若对其进行快速排序,在最坏的情况下所需要的时间是
。
6、对于n个记录的集合进行归并排序,所需要的平均时间是
,所需要的附加空间是
。
7、对于n个记录的表进行2路归并排序,整个归并排序需进行
趟(遍)。
8、设要将序列(Q, H, C, Y, P, A, M, S, R, D, F,
X)中的关键码按字母序的升序重新排列,则:
冒泡排序一趟扫描的结果是;
初始步长为4的希尔(shell)排序一趟的结果是
;
二路归并排序一趟扫描的结果是;
快速排序一趟扫描的结果是
堆排序初始建堆的结果是
。
9、在堆排序、快速排序和归并排序中,若只从排序结果的稳定性考虑,则应选取
方法;若只从平均情况下最快考虑,则应选取
方法;若只从最坏情况下最快并且要节省内存考虑,则应选取
方法。
10、将5个不同的数据进行排序,至多需要比较(
)次。
A、8
B、
9
C、10
D、 25
11、排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为(
)
A、希尔排序
B、冒泡排序
D、选择排序
12、从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为(
)
A、希尔排序
B、归并排序
D、选择排序
13、对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多(
)
A、从小到大排列好的
B、从大到小排列好的
D、元素基本有序
14、对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为(
)
A、n+1
B、n
15、快速排序在下列哪种情况下最易发挥其长处(
)
A、被排序的数据中含有多个相同排序码
B、被排序的数据已基本有序
C、被排序的数据完全无序
16、对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是(
)
A、O(n)
B、O(n2)
C、O(nlog2n)
D、O(n3)
17、若一组记录的排序码为(46, 79, 56, 38, 40,
84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为(
)
A、
40,
79,
84
B、
,
84
C、
38,46,
79,
84
D、 40,
84,
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、
插入
交换
D、 归并
20、堆的形状是一棵(
)
A、二叉排序树
B、满二叉树
D、 平衡二叉树
21、已知一堆数组A中的数据如下,试写出在快速排序的过程中每次划分后数据的排序情况.
1
2
3
4
5
6
7
8
┌─┬─┬─┬─┬─┬─┬─┬─┐
│45│28│64│53│15│36│74│30│
└─┴─┴─┴─┴─┴─┴─┴─┘
(1)
(2)
(3)
22、下列排序算法中,第一趟排序完毕后,其最大或最小元素不一定在其最终位置上的算法是(
)
A、归并排序
B、直接选择排序
23、直接插入排序的时间复杂度为(
).
A、O(n)
B、0(log2n)
C、0(nlog2n)
D、0(n2)
24、利用堆排序的方法给已知数组A中的数据排序,写出在构成初始堆和利用堆排序的过程中,每次筛运算后数据的排列情况:
1
2
3
4
5
6
7
8
┌─┬─┬─┬─┬─┬─┬─┬─┐
A│45│28│49│16│37│82│56│75│
└─┴─┴─┴─┴─┴─┴─┴─┘
1.构成初始堆的过程
(1)
(2)
(3)
(4)
2.利用堆排序的过程
(1)
(2)
(3)
(4)
(5)
(6)
(7)
25、判断以下序列是否为堆,若不是,调整为堆
a.{12,15,23,35,28,87,49,86}
b.{35,12,28,87,49,86,15,23}
26、设一组关键字为{23,3,39,9,7,5,16,8},进行线性插入分类,试写出第一遍分类后关键字的排列次序________
27、内部分类包括(任写六种)___________________________________
28、分类的目的是____________________________
29、你所学过的排序的方法中,哪些是稳定的____________
30、下列排序算法中,排序花费的时间不受数据开始排列特性影响的算法是(
)
A、直接插入排序 B、冒泡排序 C、直接选择排序 D、快速排序
31、下列排序算法中,最好情况下时间复杂度为0(n)的算法是(
)
A、选择排序 B、归并排序 C、快速排序 D、冒泡排序
32、利用堆排序的方法给已知数据A中的数据排序,写出在构成初始堆和利用堆排序的过程中每次筛运算后数据的排列情况(要求构造大根堆)
2
3
4
5
6
7
8
┌─┬─┬─┬─┬─┬─┬─┬─┐
A│45│28│49│16│37│82│56│75│
└─┴─┴─┴─┴─┴─┴─┴─┘
33、堆排序是不稳定排序 (
34、设文件有10个记录其关键字值分别为:37,23,7,79,29,43,73,19,31,61,试给出用冒泡排序法,按非递减的次序进行排序过程中的每一趟结果序列.
35、堆排序与快速排序相比,堆比快速省时间 (
)
36、快速排序的平均时间复杂度是________.
37、对于给定的一组关键字:38,64,52,13,47,85写出快速排序的各趟运行结果
38、所谓归并是指将若干个__________
的子文件合并成一个有序的文件.
39、给定一组关键字91,28,72,63,15,101,79,46,81将其用二路归并排序的各趟结果.
40、n个关键字序列k1,k2,......,kn称为堆,当且仅当该序列满足特性______和______(1<=i<=[n/2])
41、
________的基本方法是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在以排好序的文件的最后直到全部记录排序完毕.
42、堆排序是一树形选择排序,特点是在排序过程中,将r[1]到r[n]看成一棵________顺序存储结构.
43、起泡排序最好情况下,时间复杂度为______,其坏时间复杂度为_______
,平均时间复杂度为_______ .
44、评价排序算法好坏的标准主要两条:第一条是算法执行时所需的_____
,第二条是执行算法所需要的附加________
45、交换排序的基本思想是:两两比较待排序记录的_______
,发现两个记录的次序相反时即进行交换,直到没有_______
的记录为止,其中________和_________都属于交换排序.