单选题 对由n个记录所组成的有序关键码排序时,下列各常用排序算法的平均比较次数分别是:二路归并排序为 (29) ,冒泡排序 (30) ,快速排序为 (31) 。其中,归并排序和快速排序所需要的辅助存储分别是 (32) (33)

【正确答案】 B
【答案解析】
【正确答案】 D
【答案解析】
【正确答案】 B
【答案解析】
【正确答案】 C
【答案解析】
【正确答案】 F
【答案解析】[分析]
本题是对排序算法的时间复杂度和空间复杂度进行比较分析,下面给出比较分析表,如表4-1所示。
表4-1 常用排序算法的比较表
排序方法
最好情况
平均时间
最坏情况
辅助空间
直接插入排序 O(n) O(n2) O(n2) O(1)
简单选择排序 O(n2) O(n2) O(n2) O(1)
冒泡排序 O(n) O(n2) O(n2) O(1)
快速排序 O(nlog2n) O(nlog2n) O(n2) O(nlog2n)
堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1)
归并排序 O(nlog2n) O(nlog2n) O(nlog2n) O(n)
基数排序 O(d(n+rd)) O(d(n+rd)) O(d(n+rd)) O(n+rd)
  根据表4-1,可直接得到本题的答案。读者需要对表4-1进行理解,能够自己推导出有关复杂性结果,或者进行记忆。