谁能解释一下什么是“稳定的”和“不稳定的”与各种排序algorithms>如何确定一个算法是否稳定,以及不稳定的排序算法通常有哪些应用程序(因为它们是不稳定的)?
发布于 2013-02-28 09:00:10
如果一个排序算法被认为是“不稳定的”,这意味着对于任何排名相同的项,绑定成员的顺序不能保证在该集合的连续排序中保持不变。对于“稳定”排序,绑定的条目在排序时将始终以相同的顺序结束。
以应用为例,快速排序算法并不稳定。这对于按照优先级对操作进行排序这样的事情很有效(如果两个操作具有相同的优先级,那么您就不太可能关心tie的哪些元素是先执行的)。
另一方面,稳定的排序算法对于在线游戏的排行榜之类的东西是很好的。如果你使用不稳定的排序,例如按点排序,那么在网页上查看排序结果的用户可能会在页面刷新时体验到不同的结果,并且像翻页这样的操作将无法正常工作。
发布于 2013-02-28 09:04:42
稳定的排序保留相同项的顺序。通过将行索引附加到键,可以使任何排序变得稳定。不稳定的排序,例如堆排序和快速排序,本身就没有这个属性,但它们之所以被使用,是因为它们往往比稳定的排序更快、更容易编码。据我所知,使用不稳定排序没有其他原因。
https://stackoverflow.com/questions/15125552
复制相似问题