heap sort revised