Algorithm 在minheap或maxheap上使用heapsort是否更有效?

Algorithm 在minheap或maxheap上使用heapsort是否更有效?,algorithm,time,heap,time-complexity,heapsort,Algorithm,Time,Heap,Time Complexity,Heapsort,只是一个一般性的问题 重申标题: 在minheap或maxheap上使用heapsort是否更有效 注意:使用基于阵列的实现以下是我对它的看法,我可能是不正确的,但现在开始。理论上,它们同样有效 堆排序的工作原理基本上是将所有元素放入一个minheap中,然后,现在它们是按堆顺序排列的,重复删除最小元素,直到堆为空,并以递增的顺序给我们提供数据。它是Onlogn,因为我们对数据进行线性传递,堆支持对数据中的每个元素进行logn插入/删除 如果我们使用max堆,我们将重复调用getMax。这会产生

只是一个一般性的问题

重申标题:

在minheap或maxheap上使用heapsort是否更有效


注意:使用基于阵列的实现

以下是我对它的看法,我可能是不正确的,但现在开始。理论上,它们同样有效

堆排序的工作原理基本上是将所有元素放入一个minheap中,然后,现在它们是按堆顺序排列的,重复删除最小元素,直到堆为空,并以递增的顺序给我们提供数据。它是Onlogn,因为我们对数据进行线性传递,堆支持对数据中的每个元素进行logn插入/删除


如果我们使用max堆,我们将重复调用getMax。这会产生一个降序,但您可以很容易地从右到左将这些最大值插入到最终数组中,以获得一个升序。

算法是相同的。只有比较会改变。这就是我的想法,你只是简单地将比较从ifx>y改变为ifx