堆(Heap)
注意本文说的堆是数据结构中的堆,而不是java内存模型中的堆。
一、定义
n个元素的序列{k1, k2, …, kn}当且仅当满足以下关系时,称之为堆。若堆顶元素最小,则称之为小顶堆或小根堆。若堆顶元素最大,则称之为大顶堆或大根堆。如下图所示。
二、性质
若以一维数组作为堆的存储结构,并将该一维数组看成是一个完全二叉树,则完全二叉树中所有非终端结点的值均不大于(或不小于)其左、右孩子结点的值。
堆顶元素(或完全二叉树的根)是堆中最小值(或最大值)。
最后一个非终端结点是第⌊n2⌋\lfloor \fra
原创
2020-08-01 10:51:13 ·
291 阅读 ·
0 评论