A heap is a binary tree that satisfies these special SHAPE and ORDER properties:
can store in an array
(N/2) * O(log N) compares to create original heap
(N-1) * O(log N) compares for the sorting loop
= O ( N * log N) compares total