If I have this A = [4 2 8 6 5 3] and I call BuildHeap(A)
BuildHeap(A){
heap_length[A] ← length[A]
for i ← floor(length[A]/2) downto 1 do
Heapify(A, i)
}
It will build it like this
4
2 8
6 5 3
Or like that:
8
6 4
2 5 3
If you create a min-heap,
2
4 3
6 5 8
If you create a max-heap,
8
6 4
2 5 3
Remember, min-heaps will always have the "minimum" element at the top, and max-heaps will always have the "maximum".
The bottom-up process of creating a heap is like this:
To see an example, go here : http://www.brpreiss.com/books/opus5/html/page502.html