You can implement the heap in either way and both are correct as they obey the basic rule of heap ordering that parent key has to be grater than either of child node. Though they might result in different heaps.
Method-1- Make a heap of the whole array and start heapifying through leaf nodes to the top.
By this method the number of compares to construct the heap is O(N) i.e it takes linear number of compares and thus takes linear time.
Method-2- Insert an element one-by-one into the heap from the array and heapifying simultaneously. Inserting an element into an ordered heap takes logN compares on an average. So inserting N items and heap ordering simultaneously takes log1 + 2log2 +3log3 + ... + NlogN ~ NlogN compares and thus linearithmic time.
Thus method one is preferable as it takes fewer number of compares and thus lesser time.