There should already be elements in the first three spots. To build the heap bottom-up all you need to do is move elements around.

This is done by comparing the parent with both children (if there are two) and moving the smallest of the 3 into the parent position. You can run iterate this breadth-depth wise to build the whole heap in O(n) time (no recursion required) by running this algorithm backwards from the end of the array.

example:

4 5 2 1 4 6

this looks like:

The whole bottom row don't need to be moved because there are no children.

Look next at 2. It's bigger than both it's children (6 and no child), so it stays.

look at 5. 1 is smaller than 5 and 4, so swap the 5 and the 1.

look at 4. 1 is smaller than 4 and 2, swap the 4 and the 1.

done building the heap.