GESP 四级 · GESP 202306 C++ 四级 第 2 题

选择题 · 答案 C · 考点:算法

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

题目

排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表中 R 也一定在 S 前。下面关于排序稳定性的描述,正确的是( )。

答案:C

考点

算法

解题思维

这道题考排序算法的稳定性,核心是看相等元素排序前后相对位置是否改变。拿到题先别急着背结论,把每个算法的‘交换机制’在脑子里跑一遍:冒泡只换相邻、插入是往后挪、选择是跨距换——谁动了相等元素的先后顺序,谁就不稳定。

常见错误

很多同学一看到‘交换’就下意识认为不稳定,这是最大的坑。冒泡和插入排序虽然也有交换或移动,但它们只在相等元素相邻时才可能触发交换,且交换方向是向后的,不会打乱相对次序;只有选择排序会为了找最小值,把后面某个位置的最小值直接换到前面,如果最小值有多个且相等,这次跨距交换就会把原本在前的相等元素换到后面,破坏稳定性。

详细解析(节选)

本题考查GESP四级大纲中的排序算法稳定性。命题人特意选了冒泡、插入、选择三个经典算法做干扰项,卡住的是考生对算法内部执行细节的盲点——多数同学死记结论,却不懂为什么选择排序会破坏相等元素的相对次序。解题心法很简单:拿到题先回忆稳定排序的定义——相等元素排序前后相对位置不变;再看三种算法的‘交换机制’。冒泡排序只交换相邻元素,相等时不交换,所以稳定;插入排序是将元素插入已排序区,相等时插在后面,不改变相对位置,稳定;选择排序每次把未排序区最小值与当前位置交换,相等元素可能跨越位置,相对次序被打乱,故不稳定。陷阱在于A、B都是‘经典稳定算法’,命题人利用‘交换=不稳定’的直觉误导;D是‘全部错’的绝对化表述,容易让只背结论的考生误选。最阴险的细节在C:选择排序的交换发生在非相邻元素之间,学生若只看‘有交换就不稳定’会误判,必须抓住‘相等元素相对位置是否被改变’这一本质。反命题视角:把‘选择排序’换成‘快速排序’,答案变成‘不稳定’;换成‘归并排序’,答案变成‘稳定’,刷到类似题先问自己:这道题考的是排序过程对相等元素的相对位置影响,而不是‘有没有交换’。考频上,算法类题目在题库中仅7题,覆盖4个级别,近年集中在2023-2025年,说明命题人正逐步加大算法细节题比重。暂无足够依据预测未来具体题型变化,但稳定性这类概念辨析题大概率仍会作为单选题出现,重点考察对冒泡、插入、选择三种基础排序执行过程的微观理解。

同考点真题

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