add another version of heap sort