Skip to content

2023年 408 数据结构 第 10 题

数据结构2023年选择题2分

题目

下列排序算法中,不稳定的是( )。

I. 希尔排序

II. 归并排序

III. 快速排序

IV. 堆排序

V. 基数排序

错因

A

把归并排序当成不稳定。归并的合并步骤"两边相等时取左边"是稳定算法的标准实现,归并排序是稳定的。把它和"分治"或"基于比较"挂钩想成不稳定,是混淆了"分治算法"与"稳定性"两件不相关的事。

B

错认了归并的稳定性,又错把基数排序当成不稳定。基数排序按位逐轮分配 + 收集,每一轮的子排序必须是稳定的(一般用计数排序),整个基数排序也就是稳定的——这是它能正确从低位到高位逐位排序的前提。

D

错把基数排序当不稳定(同 B),同时漏掉了希尔排序的不稳定性。希尔排序用"分组直接插入",不同组之间的相等元素相对顺序在最终合并里可能被破坏——是经典不稳定算法。

总解析

稳定性定义:排序前两个相等的关键字 ),排序后仍保持 之前 → 稳定;否则不稳定。

逐项判断

排序稳定性关键原因
I 希尔不稳定跨组比较和插入,相同元素在不同组里被分开处理后相对位置可能反转
II 归并稳定合并时相等元素优先取左半边
III 快排不稳定划分时与枢轴左右交换的元素可能跨过相等元素
IV 堆排不稳定建堆和调整时大幅度跨越交换,相等元素相对顺序乱掉
V 基数稳定每位排序使用稳定的计数 / 桶排序

记忆口诀:408 范围内"快希堆 + 选(直接选择)" 不稳定,其余稳定。

不稳定的有 I、III、IV。

最终答案是 C(仅 I、III、IV)

格式调整说明:原题干 IV 堆排序V 基数排序 中间漏了空白,已修复为分行。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数