第十章-排序-作业2-交换类排序与选择类排序

判断题

1-1
对N个记录进行堆排序,需要的额外空间为O(N)。F

所需要的辅助空间为O(1)

1-2
对N个记录进行简单选择排序,比较次数和移动次数分别为O(N的平方)和O(N)。T

1-3
希尔排序是稳定的算法 F

希尔排序是快速排序,不是稳定的排序。

1-4
对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多 F

当元素有序时交换元素次数最少

选择题

2-1
在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都会停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?C
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N2​)

指针停止就会不断交换左右指针的元素,这样虽然多余的交换次数变多,但让子序列的元素相对平均,所以一共有logN次划分,每次时间复杂度是O(N)。

2-2
在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左右指针都不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?D
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N2​)

指针不停止,导致所有元素都被放到一个划分中去,一共N个元素,所以一共有N次划分,每次时间复杂度是O(N)。

2-3
在快速排序的一趟划分过程中,当遇到与基准数相等的元素时,如果左指针停止移动,而右指针在同样情况下却不停止移动,那么当所有元素都相等时,算法的时间复杂度是多少?D
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N2​)

2-4
对N个不同的数据采用冒泡算法进行从大到小的排序,下面哪种情况下肯定交换元素次数最多? A
A.从小到大排好的
B.从大到小排好的
C.元素无序
D.元素基本有序

如果正好从大到小排好,不用交换,交换次数为0。但是如果是从小到大排好的,交换次数则最多

2-5
对于7个数进行冒泡排序,需要进行的比较次数为:C
A.7
B.14
C.21
D.49

冒泡排序需要进行的比较次数为n(n-1)/2,故比较次数为21次。

2-6
有组记录的排序码为{ 46,79,56,38,40,84 },则利用堆排序的方法建立的初始堆为: D
A.79,46,56,38,40,80
B.84,79,56,46,40,38
C.84,56,79,40,46,38
D.84,79,56,38,40,46

2-7
采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是: C
A.每次划分后,先处理较长的分区可以减少递归次数
B.每次划分后,先处理较短的分区可以减少递归次数
C.递归次数与每次划分后得到的分区处理顺序无关
D.递归次数与初始数据的排列次序无关

AB:划分后,处理长的分区或处理短的分区可以减少递归对栈的使用内存
C:递归次数与初始数据的排列次序有关,若有序,则递归次数增多
D递归次数与先处理长分区或短分区的顺序无关

2-8
对N个记录进行快速排序,在最坏的情况下,其时间复杂度是: C
A.O(N)
B.O(NlogN)
C.O(N​2)
D.O(N2logN)

若进行快速排序的n个元素按关键字有序或基本有序时,快速排序将退化为冒泡排序,时间复杂度为o(N2)

2-9
有组记录的排序码为{46,79,56,38,40,84 },采用快速排序(以位于最左位置的对象为基准而)得到的第一次划分结果为: D
A.{38,46,79,56,40,84}
B.{38,79,56,46,40,84}
C.{38,46,56,79,40,84}
D.{40,38,46,56,79,84}

快速排序法定义了,以46为基准数,把比它大的放在右边,小的放在左边。所以第一次得到的结果是40,38,46,56,79,84

2-10
对于序列{ 49,38,65,97,76,13,27,50 },按由小到大进行排序,下面哪一个是初始步长为4的希尔排序法第一趟的结果? B
A.13,27,38,49,50,65,76,97
B.49,13,27,50,76,38,65,97
C.49,76,65,13,27,50,97,38
D.97,76,65,50,49,38,27,13

希尔排序即为找步长,步长为4
49-76
38-13
65-27
97-50
先将每组中较小的拿出来,再将较大的拿出来,49,13,27,50,76,38,65,97

2-11
给定初始待排序列{ 15,9,7,8,20,-1,4 }。如果希尔排序第一趟结束后得到序列为{ 15,-1,4,8,20,9,7 },则该趟增量为: D
A.1
B.2
C.3
D.4

既然第一个输出的是15,则说明与15比较的是一个比15大的数,所以只能是20,增量为4

2-12
对N个元素采用简单选择排序,比较次数和移动次数分别为: A
A.O(N2), O(N)
B.O(N), O(logN)
C.O(logN), O(N2)
D.O(NlogN), O(NlogN)

2-13
对于10个数的简单选择排序,最坏情况下需要交换元素的次数为: A
A.9
B.36
C.45
D.100

2-14
对N个记录进行堆排序,最坏的情况下时间复杂度是: C
A.O(logN)
B.O(N)
C.O(NlogN)
D.O(N​2)

2-15
对N个记录进行堆排序,需要的额外空间为: A
A.O(1)
B.O(logN)
C.O(N)
D.O(NlogN)

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值