JAN*_*JAN 1 sorting algorithm heap
我有一个数组中表示的最大堆A
,我有以下问题:
Is it possible to build a sorted list , based on the maximum
heap - A - in O(n*log(log(n))) ?
Run Code Online (Sandbox Code Playgroud)
我的回答:不,我们不能!我们总是可以
在(最糟糕的情况下)运行A
并执行MergeSort O(n*log(n))
或QuickSort .O(n*log(n))
O(n^2)
我想也许可以构建基于的实际堆A
,这将采取O(n)
,然后从中提取所有元素O(n*log(n))
,但我在这里没有获得任何东西.
目前我看不到任何选择O(n*log(log(n)))
,任何想法?
小智 6
我认为这是不可能的:有一种算法可以在o(n)中构建一个最大堆(看这里是否有一个O(n)算法来构建一个最大堆?)所以如果你可以在o中建立一个堆( n)然后在o(n log(log(n))中对它进行排序,你可以得到一个在o(n log(log(n))中工作的排序算法,如果你没有关于你的初始信息,这是不可能的输入.