堆排序(Heap Sort)是一种基于堆数据结构的比较排序算法,具有良好的时间复杂度和空间复杂度。堆
是一种特殊的树形数据结构,是一个完全二叉树,分为最大堆(Max Heap)和最小堆(Min Heap)。
在最大堆中,父节点的值总是大于或等于其子节点的值。在最小堆中,父节点的值总是小于或等于其子
节点的值。
堆排序的基本思想是:先将待排序的序列构造成一个最大堆,此时,整个序列的最大值就是堆的根节
点。将其与堆的最后一个元素交换,然后将剩下的 n-1 个元素重新构造成一个最大堆,反复执行上述操
作,直到整个序列有序