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

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

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

题目

对一组 struct student 的学生按成绩(score )升序排序。排序前后的数据如下。关于该排序的稳定 性,判断正确的是(  )。

struct student {
int score;
char id;
};

排序前:

(90, 'A'), (80, 'B'), (90, 'C'), (80, 'D')

排序后:

(80, 'B'), (80, 'D'), (90, 'C'), (90, 'A')
答案:C

考点

算法

解题思维

看输入输出序列,定位相同键值元素,对比相对位置是否改变。

常见错误

把"稳定"当成"已排好序"或"同分不影响结果",误以为必须看算法代码才能判断。

详细解析(节选)

1. 考纲定位

GESP 四级《算法与数据结构》模块,排序算法基础考点。命题人卡住的是考生对"稳定性"概念的认知偏差——很多人把"稳定"和"已排好序"混为一谈,或者认为只有看到代码才能判断。

2. 解题思维

定义先行:排序算法稳定,指键值相同的元素,排序后相对顺序不变。

定位关键元素:输入中两个 90 分记录是 (90, 'A') 和 (90, 'C'),'A' 在前。

对比输出:输出中这两个记录变成 (90, 'C') 在前、(90, 'A') 在后,相对顺序翻转了。

结论:稳定性被破坏,排序不稳定。

通法:遇到稳定性判断,先找所有键值相同的元素,看它们在输出中的相对顺序是否保持原样。

同考点真题

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