MST

星途 面试题库

面试题:Python中列表sort排序稳定性的理解

请解释在Python中列表使用sort方法进行排序时,稳定性的含义,并举例说明在什么场景下稳定性会对排序结果产生重要影响。
16.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

稳定性含义

在Python中,列表使用sort方法排序时,稳定性指的是如果列表中有两个或多个相等的元素,在排序后,这些相等元素的相对顺序与它们在原始列表中的顺序保持一致。例如,有列表[('apple', 3), ('banana', 2), ('cherry', 2)],如果按照第二个元素排序且排序算法稳定,那么排序后('banana', 2)会在('cherry', 2)之前,保持它们在原始列表中的先后顺序。

稳定性产生重要影响的场景

假设有一个学生成绩列表,每个元素是一个包含学生姓名和成绩的元组,如[('Alice', 85), ('Bob', 90), ('Charlie', 85), ('David', 95)]。现在要先按成绩从高到低排序,如果成绩相同,保持原来学生出现的顺序。如果使用稳定排序算法,排序后会是[('David', 95), ('Bob', 90), ('Alice', 85), ('Charlie', 85)],这样在成绩相同的情况下能保留原始顺序信息,对于一些需要保留原始顺序相关信息的场景(如按照成绩排名,但成绩相同学生的先后顺序有意义,比如先报名的学生在前)非常重要。若使用不稳定排序算法,成绩相同的学生顺序可能会随机打乱,就无法满足这类需求。