2022 数据结构 排序算法 选择题
第 11 题

对数据进行排序时,若采用直接插入排序而不采用快速排序,则可能的原因是()。

I. 大部分元素已有序

II 待排序元素数量很少

Ⅲ.要求空间复杂度为 O(1)

IV. 要求排序算法是稳定的

A. 仅 I 、Ⅱ

B. 仅Ⅲ、IV

C. 仅 I 、Ⅱ 、IV D.I 、II 、ⅢI 、IV

[tag_link]

正确答案:D

直接插入排序 和 快速排序 的特点如下表所示:

排序算法适合初始序列情况适合元素数量空间复杂度稳定性
直接插入排序大部分元素有序较少O(1)稳定
快速排序基本无序较多O(log₂n)不稳定

I. 大部分元素已有序 ✅ 正确。

直接插入排序在序列 基本有序 的情况下表现非常好,接近 O(n) 的时间复杂度,而快速排序在此场景下仍需要递归处理。

因此此项成立。

II. 待排序元素数量很少 ✅ 正确。

当元素数量较少时,插入排序的常数因子小、实现简单, 实际运行效率往往优于快速排序 ,这是实际工程中的常见优化策略(如许多库排序在小规模时使用插入排序)。

III. 要求空间复杂度为 O(1) ✅ 正确。

插入排序是 原地排序 ,空间复杂度为 O(1);

而快速排序虽然通常也是原地排序,但某些实现(尤其是递归调用)存在 O(log n) 的栈空间。

若对空间要求极严,插入排序更适合。

IV. 要求排序算法是稳定的 ✅ 正确。

插入排序是 稳定排序 ,而快速排序是 不稳定的 (原始版本)。

如果应用场景要求排序后相等元素的相对顺序不变,选择插入排序是合理的。

综上,所有说法都正确,正确答案选择 D。

组成原理 12 某计算机主频为 1GHz,程序 P 运行过程中,共执行了 10000 条指令,其中,80% 的指令执行平均需 1 个时钟周期,20% 的指令执行平均需 10 个时钟周期。

程序 P 的平均 CPI 和 CPU 执行时间分别是( )。

计算机性能指标 A. 2.8,28μs B. 28,28μs C. 2.8,28ms D. 28,28ms 查看答案与解析 收藏 正确答案: 参考 指令执行指标 ,CPI 指平均每条指令的执行需要多少个时钟周期。

由于 80% 的指令执行平均需要 1 个时钟周期,20% 的指令执行平均需要 10 个时钟周期,因此 CPI = 80% × 1 + 20% × 10 = 2.8 。

计算机主频为 1GHz,程序 P 共执行 10000 条指令,平均每条指令需要 2.8 个时钟周期,因此, CPU 执行时间= ( 10000 × 2.8 ) /1 0 9 = 2.8 × 1 0 − 5 s = 28 μ s 。