如果我有A = [4 2 8 6 5 3]并且我打电话给BuildHeap(A)
BuildHeap(A){
heap_length[A] ← length[A]
for i ← floor(length[A]/2) downto 1 do
Heapify(A, i)
}
它会像这样构建它
4
2 8
6 5 3
或者那样:
8
6 4
2 5 3
答案 0 :(得分:2)
如果你创建一个小堆,
2
4 3
6 5 8
如果您创建了最大堆,
8
6 4
2 5 3
请记住,min-heaps总是在顶部有“最小”元素,而max-sheaps总是具有“最大”。
创建堆的自下而上的过程如下:
要查看示例,请转到此处:http://www.brpreiss.com/books/opus5/html/page502.html