当然堆排序还有一种更好的办法。从小到大排序的时候不建立”最小堆“而是建立”最大堆“!
最大堆建立好之后,最大的元素是h[1],因为我们需要从小到大排序,希望最大的数放在最后,那么我们将h[1]和h[n]交换,此时h[n]就是数组中最大的元素。最大的元素归位后,将堆的大小减1,n--,并将交换后的新h[1]向下调整维持特性。如此递归,直到堆的大小是1位置。此时数组h已经是排好序了。
详情查看:https://blog.csdn.net/Jayphone17/article/details/102666274