首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于各种排序算法来说,“稳定”和“不稳定”的含义是什么?

对于各种排序算法来说,“稳定”和“不稳定”的含义是什么?
EN

Stack Overflow用户
提问于 2013-02-28 08:57:46
回答 2查看 38.1K关注 0票数 37

谁能解释一下什么是“稳定的”和“不稳定的”与各种排序algorithms>如何确定一个算法是否稳定,以及不稳定的排序算法通常有哪些应用程序(因为它们是不稳定的)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-28 09:00:10

如果一个排序算法被认为是“不稳定的”,这意味着对于任何排名相同的项,绑定成员的顺序不能保证在该集合的连续排序中保持不变。对于“稳定”排序,绑定的条目在排序时将始终以相同的顺序结束。

以应用为例,快速排序算法并不稳定。这对于按照优先级对操作进行排序这样的事情很有效(如果两个操作具有相同的优先级,那么您就不太可能关心tie的哪些元素是先执行的)。

另一方面,稳定的排序算法对于在线游戏的排行榜之类的东西是很好的。如果你使用不稳定的排序,例如按点排序,那么在网页上查看排序结果的用户可能会在页面刷新时体验到不同的结果,并且像翻页这样的操作将无法正常工作。

票数 60
EN

Stack Overflow用户

发布于 2013-02-28 09:04:42

稳定的排序保留相同项的顺序。通过将行索引附加到键,可以使任何排序变得稳定。不稳定的排序,例如堆排序和快速排序,本身就没有这个属性,但它们之所以被使用,是因为它们往往比稳定的排序更快、更容易编码。据我所知,使用不稳定排序没有其他原因。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15125552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档