大根堆:根节点大于左右节点的值
小根堆:根节点小于左右节点的值
下面我将对小根堆的相关知识做一个描述,大根堆类似,这里就不做详细介绍了
创建:
从最后一个非叶子节点开始,自低向上调整为小根堆,然后从倒数第二个非叶子节点开始,依次进行。
如上图,非叶子节点顺序为 09》》78》》17》》53
以09为例,因为09的值比23小,所以不用交换,
然后比较78对应的节点,78比65大,所以将78和65交换。
然后比较17这个节点,17比09大,所以交换两者的值。
这是一趟完整的自底向上的调整,然后继续从开始调整,直到调整为小根堆
插入
将待插入的元素插入堆的最后面,然后自底向上调整为小根堆。
删除
将顶元素删除,然后将堆的最后一个元素放入堆顶,然后自顶向下调整为小根堆。