如果输入数组已排序,请举例说明从1到n的数字 按递增顺序,那么是否需要O(n)从这样的数组构建最小堆?
编辑1: - 我知道如果我们从n个元素构建最小堆,那么在最坏的情况下它将具有Ω(n * log n)运行时,但是这些n个元素的排序顺序是递增顺序a在O(n)最坏情况下运行时构建最小堆的方法?
编辑2: - 我们是否可以在O(n)中以递减顺序从n大小的数组构建最小堆?如果是这样,为什么呢?
答案 0 :(得分:0)
如果数组已排序 - 它已经 min-heap,因为主堆属性A[i]<= A[2*i]
和A[i]<= A[2*i+1]
(对于基于1的计算)是的。
请注意,堆构建过程对任何源数组都需要O(n)时间。 Arbitrary found source
答案 1 :(得分:0)