题18

题目

【2019 统考真题】选择一个排序算法时, 除算法的时空效率外, 下列因素中, 还需要考虑的是 ( ).
I. 数据的规模
II. 数据的存储方式
III. 算法的稳定性
IV. 数据的初始状态
A. 仅 III
B. 仅 I、II
C. 仅 II、III、IV
D. I、II、III、IV

分析

  • 当数据规模较小时可选择复杂度为 的简单排序算法
    • 当数据规模较大时应选择复杂度为 的排序算法
    • 当数据规模大到内存无法放下时需选择外部排序算法
  • 数据的存储方式主要分为顺序存储和链式存储
    • 有些排序算法 (如堆排序) 只能用于顺序存储方式
  • 若对数据稳定性有要求, 则不能选择不稳定的排序算法
  • 当数据初始基本有序时,直接插入排序的效率最高
    • 冒泡排序和直接插入排序的时间复杂度都是
    • 而归并排序的时间复杂度依旧是

D