第十章复习题20200111

第十章复习题 20200111

真的错题

42

在归并排序中,若待排序记录的个数为 20,则共需要进行 () 趟归并。

(0.7 分)

0.0

正确答案:未知

10->5->3->2->1 一共五次。

63

设关键字序列为(3,7,6,9,7,1,4,5,20),对其进行的最小交换次数是 ()。(0.7 分)

0.0

正确答案:C

我觉得这是个错题。第四个和第八个、第一个和第二个、第一个和第六个、第三个和第七个、第五个和第七个。一共 5 次

67

在归并排序中,若待排序记录的个数为 20,则共需要进行 5 趟归并,在第 3 趟归并中,是把长度为 4 的有序表归并为长度为 () 的有序表。

(0.7 分)

0.0

搜题答案:B,百度 D

错题,很明显是 D 啊
2021 年 1 月 11 日
15:28

我的错题

9

在对 n 个元素的序列进行排序时,堆排序所需要的附加存储空间是()。

(0.7 分)

0.0

我的答案:B

正确答案:A

堆排序不需要过多附加空间

23

在对一组记录(50,35,95,25,15,70,60,45,83)进行直接插入排序时,当把第 7 个记录 60 插入到有序表时,为寻找插入位置至少需比较 ().次。

(0.7 分)

0.0

正确:A,

从有序表后面开始向前找

40

快速排序在 () 情况下最易发挥其长处。(0.7 分)

0.0

正确:D

很明显完全无序对快速排序最友好

42

在归并排序中,若待排序记录的个数为 20,则共需要进行 () 趟归并。

(0.7 分)

0.0

正确答案:百度说 D

10->5->3->2->1,一共 5 躺

43

堆的形状是一棵()。(0.7 分)

0.0

正确答案:B

堆是完全二叉树

48

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

(0.7 分)

0.0

正确答案:C

快排在有序序列分块根本就分不开,一直找边上的值

53

快速排序方法在()情况下最不利于发挥其长处。(0.7 分)

0.0

正确:D

61

若对一组记录(46,79,56,38,40,80,35,50,74)进行直接选择排序,用 k 表示最小值元素的下标,进行第一趟时 k 的初值为 1,则在第一趟选择最小值的过程中,k 的值被修改 () 次。(0.7 分)

0.0

正确答案:D

因为这个题把 46 下标当成 1 了。沙比提

63

设关键字序列为(3,7,6,9,7,1,4,5,20),对其进行的最小交换次数是 ()。(0.7 分)

0.0

搜题答案:C

我觉得这是个错题。第四个和第八个、第一个和第二个、第一个和第六个、第三个和第七个、第五个和第七个。一共 5 次

67

在归并排序中,若待排序记录的个数为 20,则共需要进行 5 趟归并,在第 3 趟归并中,是把长度为 4 的有序表归并为长度为 () 的有序表。

(0.7 分)

0.0

搜题答案:B

错题,很明显是 D 啊

69

已知一个链表中有 3000 个结点,每个结点存放一个整数,()可用于解决这 3000 个整数的排序问题且不需要对算法作大的变动。

(0.7 分)

0.0

正确答案:B

因为快速排序基于链表没办法逆向查找。

76

快速排序在()情况下最不利于发挥其长处。(0.7 分)

0.0

正确答案:B

77

在堆排序,快速排序和归并排序中,若只从存储空间考虑,则空间效率最差的事()方法

(0.7 分)

0.0

正确答案:B

归并排序 On

79

在堆排序过程中,由 n 个待排序的记录建成初始堆需要()次筛选;

(0.7 分)

0.0

我的答案:A

正确答案:C

因为非结点和叶子节点个数差不多,只用对非叶子结点进行筛选

108

从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序需要一个栈空间来实现递归,若每趟快速排序都将记录序列均匀地分割成为长度相接近的两个子序列,则栈的最大深度(含最外层也进栈)为

image4

;如果每次先对较短的子序列进行快速排序,所需要的附加空间为()。

(0.7 分)

0.0

正确答案:C

百度原题:从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序需要一个栈空间来实现递归,若每一趟快速排序都将记录序列均匀地分割成长度相接近的两个序列,则栈的最大深度(含最外层也进栈)为__log2n 下取整 +1____;在最坏情况下,栈的深度为___n___;如果每次先对较短的子序列进行快速排序,则栈的最大深度降为___log2n___;所需要的附加空间为___log2n___。

网友 1:

是这样的,

优先对较短的排序,

会减少压栈空间.

记得应该是最坏的可能是 logn 层.

以稍微长一点的程序减少堆栈的使用.

在数据很多时比较好.

网友 2:

所以应该是用了尾递归,把长的那部分不用递归,用循环表示

这样最坏的栈深度是 lgn,普通的递归最坏是 n 的

网友 3:

弱弱地问一下,

如果这样的话,全部用循环不是更好吗?

网友 4:

有一点点作用把,总是从较短的一半开始的话,期望上就能较快的返回。

假设每次都正好划分在 1/3 处的话,从小的一边开始,那么 log(3)N 次递归以后,就开始返回了。

不过长的一边也要处理才行,貌似到时候栈的使用还是很多的……

对了!尾递归!

michael122 正解!!

128

设有 1000 个无序的元素,希望用最快的速度挑选出其中前 10 个最大的元素,最好选用()排序法。

(0.7 分)

0.0

正确答案:C

堆排序!!

138

假定一组记录为(46,79,56,64,38,40,84,43),在冒泡排序的过程中进行第一趟排序时,元素 79 将最终下沉到其后第 () 个元素的位置。(0.7 分)

0.0

正确答案:A

是其后!!!!!注意啦

139

一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。

(0.7 分)

0.0

正确答案:A

堆排序可以把最大或最小放在堆顶

快排的基准放在了最终位置

冒泡不用多说

做题不确定

1

以下说法错误的是 ()

(0.7 分)

2

快速排序的记录移动次数()比较次数,其总执行时间为 O(nlog2n)。(0.7 分)

在快速排序中,每次比较后才移动记录,但有时候不需要移动记录,因此,快速排序的记录移动次数不大于比较的次数。但如果记录移动次数等于比较的次数,说明每次比较都要移动记录,是快速排序最坏的情况,在此情况下执行时间为 O(n2)。

4

设有 1024 个无序的元素,希望用最快的速度挑选出其中前 5 个最大的元素,最好选用(

(0.7 分)

7

在归并排序过程中,需归并的趟数为 ()。

(0.7 分)

8

对有 n 个记录的表作快速排序,在最坏情况下,算法的时间复杂度是

(0.7 分)

9

在对 n 个元素的序列进行排序时,堆排序所需要的附加存储空间是()。

(0.7 分)

B,第一次构建一个堆

10

在所有的排序方法中,关键字的比较次数与记录的初始排列无关的是 ()

(0.7 分)

11

设一组初始记录关键字序列为 (45,80,55,40,42,85),则以第一个记录关键字 45 为基准而得到一趟快速排序的结果是()。(0.7 分)

45,80,55,40,42,85 找到 42<45,80>45

42,45,55,40,80,85 找到 40<45,55>45

42, 40,45,55,80,85

12

设需要对 5 个不同的记录关键字进行排序,至多需要比较()次。(0.7 分)

13

在插入排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,排序是稳定的有 ()。

(0.7 分)

18

在归并排序、希尔排序、选择排序、快速排序、堆排序、归并排序和基数排序中,排序是稳定的有 ()。

(0.7 分)

19

二路归并排序的时间复杂度为()。

(0.7 分)

B。二路归并时间复杂度 nlog2n

21

设一组初始记录关键字序列为 (9,8,7,6,5,4,3,2,1,0),则以增量 d=5 的一趟希尔排序结束后前 5 条记录关键字为()。(0.7 分)

22

用某种排序方法对线性表(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

采用的排序方法是()。

(0.7 分)

23

在对一组记录(50,35,95,25,15,70,60,45,83)进行直接插入排序时,当把第 7 个记录 60 插入到有序表时,为寻找插入位置至少需比较 ().次。

(0.7 分)

24

对 n 个元素的序列进行冒泡排序,最少的比较次数是 ()。(0.7 分)

25

一组记录的关键字为(45,80,55,40,42,85),则利用快速排序的方法,以第 1 个记录为基准得到一次划分结果是()。(0.7 分)

27

在平均情况下,快速排序时间复杂性为

image1

,空间复杂性为();

(0.7 分)

D。因为需要栈进行递归调用

28

从未排序序列中依次取出元素与已排序序列中的元素做比较,将其放入已排序序列中的正确位置上,此方法称为()。

(0.7 分)

31

对于直接插入排序、冒泡排序、简单选择排序、堆排序、快速排序,当文件“局部有序”或文件长度较小的情况下,最佳的内部排序方法是()。

(0.7 分)

32

一组记录的关键字为(25,50,15,35,80,85,20,40,36,70),其中含有 5 个长度为 2 的有序表,用归并排序方法对该序列进行一趟归并后的结果为 ()。

(0.7 分)

33

在所有的排序方法中,关键字的比较次数与记录的初始排列无关的是 ()

(0.7 分)

34

直接插入排序和冒泡排序的时间复杂性为

image6

,若初始数据有序(即正序),则时间复杂性为 ()。

(0.7 分)

B。

37

堆是一种 () 排序。(0.7 分)

38

排序的目的是为了以后对已排序的数据元数进行()操作。(0.7 分)

40

快速排序在 () 情况下最易发挥其长处。(0.7 分)

41

希尔排序的增量序列必须是()。(0.7 分)

42

在归并排序中,若待排序记录的个数为 20,则共需要进行 () 趟归并。

(0.7 分)

43

堆的形状是一棵()。(0.7 分)

D。我猜。

44

在堆排序过程中,由 n 个待排序的记录建成堆;在每次筛选运算的过程中,记录的比较和移动次数的数量级为 ()。

(0.7 分)

B。要进行 n 次筛选,因此是 log

47

冒泡排序、简单选择排序、堆排序、快速排序,快速排序在最坏情况下时间复杂性是

image6

,比()排序性能差。

(0.7 分)

48

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

(0.7 分)

50

在下述排序算法中,平均速度最快的是()。

(0.7 分)

51

若用冒泡排序法对序列(18,14,6,27,8,12,16,52,10,26,47,29,41,24)从小到大进行排序,共要进行()次比较。(0.7 分)

52

利用直接插入排序法的思想建立一个有序线性表的时间复杂度为()。

(0.7 分)

D。

53

快速排序方法在()情况下最不利于发挥其长处。(0.7 分)

57

对 n 个元素的序列进行冒泡排序,其比较次数为 n(n-1)/2 时,其原始数据序列是()情况。(0.7 分)

59

对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为 ()。(0.7 分)

61

若对一组记录(46,79,56,38,40,80,35,50,74)进行直接选择排序,用 k 表示最小值元素的下标,进行第一趟时 k 的初值为 1,则在第一趟选择最小值的过程中,k 的值被修改 () 次。(0.7 分)

63

设关键字序列为(3,7,6,9,7,1,4,5,20),对其进行的最小交换次数是 ()。(0.7 分)

66

下列关键字序列中,() 是堆。(0.7 分)

69

已知一个链表中有 3000 个结点,每个结点存放一个整数,()可用于解决这 3000 个整数的排序问题且不需要对算法作大的变动。

(0.7 分)

71

从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序需要一个栈空间来实现递归,若每趟快速排序都将记录序列均匀地分割成为长度相接近的两个子序列,则栈的最大深度(含最外层也进栈)为

image4

;在最坏的情况下,栈的深度为()。

(0.7 分)

A。这个题写的非常好

75

从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序需要一个栈空间来实现递归,若每趟快速排序都将记录序列均匀地分割成为长度相接近的两个子序列,则栈的最大深度(含最外层也进栈)为()。

(0.7 分)

D。上个题说是 D。栈的第一层是有 n 个组那个,相当于二叉树最后一层有 n 个结点,二叉树高度至少为__。我个人认为是 logn 上取整 +1,但是百度答案是 logn 下取整 +1

百度原题:从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序需要一个栈空间来实现递归,若每一趟快速排序都将记录序列均匀地分割成长度相接近的两个序列,则栈的最大深度(含最外层也进栈)为__log2n 下取整 +1____;在最坏情况下,栈的深度为___n___;如果每次先对较短的子序列进行快速排序,则栈的最大深度降为___log2n___;所需要的附加空间为___log2n___。

76

快速排序在()情况下最不利于发挥其长处。(0.7 分)

A。我只能选 A 了,不知道选什么

79

在堆排序过程中,由 n 个待排序的记录建成初始堆需要()次筛选;

(0.7 分)

A。不知道要几次,什么是堆排序的筛选

81

当初始序列已按健值有序时,用直接插入算法进行排序,需要比较的次数为()

(0.7 分)

A。不确定

83

对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的交换的次数为 ()

(0.7 分)

84

在对一组记录(50,40,95,20,15,70,60,45,80)进行直接插入排序时,当把第 7 个记录 60 插入到有序表时,为寻找插入位置需比较()次。(0.7 分)

88

大多数排序算法都有两个基本的操作:()。(0.7 分)

90

在对一组记录(50,40,95,20,15,70,60,45)进行冒泡排序时,在整个排序过程中共需进行 () 趟才可完成。(0.7 分)

50,40,95,20,15,70,60,45

15、50、40、95、20、45、70、60——1

15、20、50、40、95、45、60、70——2

15、20、40、50、45、95、60、70——3

15、20、40、45、50、60、95、70——4

从前开始:

50,40,95,20,15,70,60,45

40、50、20、15、70、60、45、95——1

40、20、15、50、60、45、70、95——2

20、15、40、50、45、60、70、95——3

15、20、40、45、50、60、70、95——4

这题可能问的是非改进版本,应该是 n-1=7 躺

91

()方法是从未排序序列中挑选元素,并将其依次放入已排序序列的一端。(0.7 分)

92

在对 n 个元素进行冒泡排序的过程中,至少需要()趟排序完成。(0.7 分)

93

在文件局部有序或文件长度较小的情况下,最佳的排序方法是()。

(0.7 分)

94

在对 n 个元素进行直接插入排序的过程中,共需要进行()趟。(0.7 分)

96

若对 n 个元素进行归并排序,则进行每一趟归并的时间复杂度为()

(0.7 分)

102

设有序表中有 1000 个元素,则用二分查找查找元素 X 最多需要比较()次。(0.7 分)

103

在堆排序中、快速排序和归并排序中,若只从平均情况下排序的速度来考虑,应选用()方法。

(0.7 分)

105

设一组初始记录关键字的长度为 8,则最多经过()趟插入排序可以得到有序序列。(0.7 分)

108

从时间上看,快速排序的平均性能好于其他排序方法,但从空间上看,快速排序需要一个栈空间来实现递归,若每趟快速排序都将记录序列均匀地分割成为长度相接近的两个子序列,则栈的最大深度(含最外层也进栈)为

image4

;如果每次先对较短的子序列进行快速排序,所需要的附加空间为()。

(0.7 分)

112

在对一组记录(50,40,95,20,15,70,60,45,80)进行直接选择排序时,第 4 次交换和选择后,未排序记录(即无序表)为 ()。(0.7 分)

113

设一组初始记录关键字序列为 (345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。(0.7 分)

115

设关键字序列为:3,7,6,9,8,1,4,5,2.用选择排序,进行排序的交换次数是()。(0.7 分)

176983452——1 次

126983457——2 次

123986457——3 次

123486957——4 次

123456987——5 次

123456987——5 次

123456789——6 次

118

如果将所有中国人按照生日来排序,则使用()算法最快。

(0.7 分)

119

以下说法错误的是 ()(0.7 分)

123

在堆排序过程中,由初始堆到堆排序结束需要进行()次筛选。

(0.7 分)

124

设一组记录关键字序列为 (49,38,65,97,76,13,27,49*),建立小数堆,第一次调整结束后()按从上到下从左到右的顺序依次读取结点,其顺序为()。

(0.7 分)

126

一般情况下,以下四种排序方法中,平均查找长度最小的是()

(0.7 分)

127

在内部排序中,平均比较次数最少的是 ()。

(0.7 分)

128

设有 1000 个无序的元素,希望用最快的速度挑选出其中前 10 个最大的元素,最好选用()排序法。

(0.7 分)

133

设一组初始关键字序列为 (38,65,97,76,13,27,10),对该序列进行升序排序,则第 3 趟冒泡排序结束后的结果为 ()。(0.7 分)

从后面开始冒泡:

10、38、65、97、76、13、27——1

10、13、38、65、97、76、27——2

10、13、27、65、97、76、38——3

从前面开始冒泡:

38、65、76、13、27、10、97——1

38、65、13、27、10、76、97——2

38、13、27、10、65、76、97——3

135

对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,在整个排序过程中最多需要进行 () 趟排序才可以完成。(0.7 分)

136

将 5 个不同的数据进行排序,至多需要比较()次。

(0.7 分)

137

在直接插入和直接选择排序中,若初始数据基本反序,则选用 ()。

(0.7 分)

138

假定一组记录为(46,79,56,64,38,40,84,43),在冒泡排序的过程中进行第一趟排序时,元素 79 将最终下沉到其后第 () 个元素的位置。(0.7 分)

139

一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。

(0.7 分)