我试图理解为什么heapsort不稳定。
我已经用谷歌搜索过,但是没有找到一个很好的,直观的解释。

我了解稳定排序的重要性-它使我们能够基于多个键进行排序,这非常有益(例如,进行多种排序,每种基于不同的键。由于每种排序都会保留元素的相对顺序,以前的排序可以加起来,以给出按多个条件排序的元素的最终列表)。
但是,为什么堆排序也不能保留呢?

谢谢你的帮助!

最佳答案

来自heapsort的结果的最终序列来自于以纯粹的大小顺序(基于键字段)从创建的堆中删除项目。

在最初创建堆的阶段,有关原始序列中项目顺序的任何信息都丢失了。

关于sorting - 为什么堆排序不稳定?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19336881/

10-12 12:20
查看更多