heapsort again