heap sort, good