GESP 四级 · GESP202609 C++ 四级 第 21 题

判断题 · 答案 A · 考点:插入排序

← 整套速查表 GESP 四级 全部真题

题目

对于按升序实现的稳定插入排序,移动元素的条件通常应为 a[j] >= key ,这样能够保证相等元素的相对 顺序不变。

while (j >= 0 && a[j] >= key) {
a[j + 1] = a[j];
j--;
}
答案:A

考点

插入排序

解题思维

这类题看到"稳定排序"四个字就要警觉——稳定性是排序算法的隐性考点。插入排序的核心是"把当前元素插入到已排序部分正确位置",稳定性的关键在于:遇到相等元素时,必须把后面的那个放在前面那个之后。所以判断条件要包含等号,用 >= 而不是 >。

常见错误

选项 A 看似反直觉——通常我们找插入位置是找第一个比 key 大的元素,用 > 判断。但这里不是找位置,是移动元素腾出空间。用 > 的话,遇到相等元素不会移动,key 就插到了相等元素前面,稳定性被破坏。命题人就是把"找位置"和"移动元素"两个动作混在一起,利用考生对插入排序流程的模糊记忆设坑。

详细解析(节选)

这类题看到"稳定排序"四个字就要警觉——稳定性是排序算法的隐性考点。插入排序的核心是"把当前元素插入到已排序部分正确位置",稳定性的关键在于:遇到相等元素时,必须把后面的那个放在前面那个之后。所以判断条件要包含等号,用 >= 而不是 >。

选项 A 看似反直觉——通常我们找插入位置是找第一个比 key 大的元素,用 > 判断。但这里不是找位置,是移动元素腾出空间。用 > 的话,遇到相等元素不会移动,key 就插到了相等元素前面,稳定性被破坏。命题人就是把"找位置"和"移动元素"两个动作混在一起,利用考生对插入排序流程的模糊记忆设坑。

1. 考纲定位

本题考查 GESP 四级《算法与数据结构》模块中稳定排序与插入排序实现的交叉点。命题人放这道题,就是要卡住那些只背"插入排序代码"但不懂"为什么这么写"的考生——他们知道要移动元素,但分不清 > 和 >= 在稳定性上的本质区别。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断