buildheap如何工作

时间:2012-11-18 14:33:48

标签: algorithm heap heapsort

如果我有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

1 个答案:

答案 0 :(得分:2)

如果你创建一个小堆,

    2
  4   3
 6 5 8

如果您创建了最大堆,

    8
  6   4
 2 5 3

请记住,min-heaps总是在顶部有“最小”元素,而max-sheaps总是具有“最大”。

创建堆的自下而上的过程如下:

enter image description here

要查看示例,请转到此处:http://www.brpreiss.com/books/opus5/html/page502.html