某排序算法对如下数据排序(按 score 升序),则下面关于该排序算法稳定性的描述中,说法正确的是( )。 初始: (90,'A'), (90,'B'), (80,'C'), (90,'D') 排序后: (80,'C'), (90,'A'), (90,'B'), (90,'D')
A:不稳定,因为出现了相同分数
B:稳定,因为相同 score 的相对顺序保持为 A 在 B 前、B 在 D 前
C:不稳定,因为 C 跑到前面了
D:无法判断
正确答案:B
答案解析
观察排序前后元素的位置变化,重点比较具有相同 score 值的元素之间的相对顺序。若所有相同 score 的元素在排序后仍保持原有的先后关系,则算法在此实例中表现出稳定性。检查每个相同键值(如 score=90)对应的标识符(如 'A', 'B', 'D')在初始与排序后的序列中是否维持原有次序。根据排序结果中这些标识符的排列与输入一致,可推断该算法在处理此数据时未改变等值元素的相对位置。
试卷来源:202603 CCF-GESP编程能力等级认证C++四级真题