繁体   English   中英

在minheap或maxheap上使用heapsort效率更高吗?

[英]Is heapsort more efficient when used on a minheap or maxheap?

只是一个普遍的问题。

重申标题:

在minheap或maxheap上使用heapsort效率更高吗?

注意:使用基于数组的实现

以下是我对此的看法,我可能是不正确的,但是可以解决。 从理论上讲,它们同样有效。

基本上,堆排序的工作原理是将所有元素放入一个(最小)堆,然后按堆顺序放置它们,反复删除最小元素,直到堆为空为止,以递增的顺序提供数据。 因为我们对数据进行线性传递,所以它为O(nlogn),并且堆支持对数据中每个元素进行的工作的log n插入/删除。

如果使用最大堆,则将反复调用getMax()。 这会产生“递减顺序”,但是您可以轻松地将这些最大值从右到左插入到最终数组中,以获得递增顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM