排序算法中`稳定性'的意义是什么?

时间:2016-04-19 17:48:01

标签: algorithm sorting data-structures

我理解排序算法的到位属性的重要性。

我知道稳定性有助于维持相对顺序,但算法的稳定性属性是否会影响其性能?

1 个答案:

答案 0 :(得分:1)

来自维基百科:

  

如果有两个记录R和,则排序算法是稳定的   S使用相同的键,然后R出现在原始列表中的S之前   R将始终出现在排序列表中的S之前。

关于您的问题:

  

算法的稳定性属性会影响它的性能吗?

我认为算法的稳定性与它们的效率无关,是两个独立的概念。

稳定性是一种排序算法可以具有或不具有的属性,具体取决于它的性质,但它不会直接影响其性能。

通过添加额外的索引键可以轻松地将不稳定算法转换为稳定,以便比较主键是否匹配。

如果您的问题类似于如何实施稳定的排序算法,那么稳定性可能会受到影响,因为这是符合要求的额外要求。

  

为什么有必要?

您可以在此question中了解稳定算法的优势。