堆
堆
堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。
堆总是满足下列性质:
- 堆中某个结点的值总是不大于或不小于其父结点的值
- 堆总是一棵完全二叉树
我们将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。
堆可以用一维数组作存储结构。或者说:堆就是用数组实现的完全二叉树。
堆的数据结构逻辑上是二叉树,但存放在一维数组里。
堆的根下标为1。
堆第i个元素的左孩子是第 2*i个元素;
堆第i个元素的右孩子是第 2*i+1个元素;
堆一般具有以下操作:
-
Up:向上调整
-
Insert:插入
-
Down:向下调整
-
Pop:取出最值(根——堆顶)
-
buildHeap: 建堆有2种方法
-
sort:排序

浙公网安备 33010602011771号