首页 > 编程知识 正文

哪种排序算法最快,排序算法哪些是稳定的

时间:2023-05-04 18:59:21 阅读:55575 作者:415

排序算法稳定性的概念[1]

如果a=b,且a原本在b之前,排序后,a仍在b之前,则此排序算法将保持稳定。 相反,它是一种不稳定的排序算法。

背景:“稳定”排序算法按顺序存储具有相同排序关键字的项。 假设你有一个五个字母的单词列表:

peach

天空之城

苹果电脑

史巴克

如果只按每个单词的第一个字符对列表进行排序,则稳定的排序如下:

苹果电脑

peach

天空之城

史巴克

不稳定的排序算法可以更换straw或spork,但稳定时保持相同的相对位置。 也就是说,straw的输入是以前的spork,输出也是以前的spork。

稳定排序算法的优点[2]

如果排序算法稳定,则从一个键开始排序,然后从另一个键开始排序。 第一次排序的结果可用于第二次排序。 基数排序就是这样的,首先按低位排序,然后依次按高位排序。 下位相同的要素,无论其顺序多么靠前,相同时都不会改变。 又来了

另外,如果排序算法稳定,则基于比较的排序算法可能会减少元素交换的次数。

例如,存储个人信息的类有两个字段:年龄age和体重权重。 在一个列表中保存并对存储在个人信息中的对象进行排序。 根据年龄,age从小到大排序,根据体重,权重从小到大排序。

稳定的排序算法可以对同龄的两个人进行排序,同时保证相对位置没有变化。

示例:

一个班的学生已经按照学校号码的大小决定了顺序。 我现在要求按照年龄从小到大的顺序排列。 如果年龄一样的话,必须按照学校号码从小到大的顺序排列。

问题是,如果你选择的年龄顺序不稳定,顺序结束后,一群同龄学生会不会变得混乱。 你必须把这个小组同龄的学生再按号码顺序拍一次。

如果是稳定的排序算法,只需按年龄排序即可。

如果排序算法稳定,则基于比较的排序算法可能会减少元素交换的次数

各种算法的稳定性比较

------------- -请参阅

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。