Williams Algorithm: top downwhile not end of array, if heap is empty, place item at root; else, place item at bottom of heap; while (child < parent) swap(parent, child); go to next array element; end