认识
一、认识
堆 是一种特别的二叉树,满足以下条件的二叉树,可以称之为 堆:
-
完全二叉树
-
每一个节点的值都必须 大于等于或者小于等于 其孩子节点的值
堆 具有以下的特点:
-
可以在
O(logN)
的时间复杂度内向 堆 中插入元素; -
可以在
O(logN)
的时间复杂度内向 堆 中删除元素; -
可以在
O(1)
的时间复杂度内获取 堆 中的最大值或最小值。
堆的分类:
-
最大堆:堆中每一个节点的值 都大于等于 其孩子节点的值。所以最大堆的特性是 堆顶元素(根节点)是堆中的最大值。
-
最小堆: 堆中每一个节点的值 都小于等于 其孩子节点的值。所以最小堆的特性是 堆顶元素(根节点)是堆中的最小值。