1.概述
小顶堆:每个节点的值都小于或者等于它的左右子节点的值
2.0示意图
大堆顶:
堆排序是一种重要的选择排序方法,它只需要一个记录大小的辅助存储空间,每个待排序的记录仅占用一个记录大小的存储空间,因此弥补了树形选择排序的弱点。
大顶堆:每个节点的值都大于或者等于它的左右子节点的值。
一般升序采用大顶堆,降序采用小顶堆
基本思想:
首先将这n条记录按关键字值的大小建立堆(称为初始堆),将堆顶元素r[0]与r[n-1]交换
然后,将剩下的
{r[0]..r[n-2]}
序列调整成堆再将 r[0]与r[n-2]交换,再将剩下的
{r[0]..r[n-3]}
序列调整成堆如此反复,直到整个序列有序。
这个过程称为堆排序
要实现堆排序需解决以下两个主要问题: