priority queue and heap sort