只是一个普遍的问题......
重申标题:
在minheap或maxheap上使用时,heapsort是否更有效?
注意:使用基于阵列的实现
答案 0 :(得分:0)
以下是我对它的看法,我可能不对,但是这里有。从理论上讲,它们同样有效。
堆排序的工作原理基本上是将所有元素放入(最小)堆中,然后,现在它们按堆顺序重复删除最小元素直到堆为空,从而按递增顺序提供数据。它是O(nlogn),因为我们对数据进行线性传递,并且堆支持对数据中每个元素所做的工作的日志插入/删除。
如果我们使用了最大堆,我们将重复调用getMax()。这会产生“递减顺序”,但您可以轻松地在最终数组中从右向左插入这些最大值,以获得增加的顺序。