因为排序是log(n)级别
因此堆一定是一个树形结构:二叉堆
这个二叉树的特点:
- 父亲结点总是 > 子结点

- 二叉堆必须是一个完全二叉树。完全二叉树指该二叉树除了最后一层外,其他层的结点个数必须是最大值,且最后一层子节点必须全部集中在左侧。

注意:这样的堆称为“最大堆”,因为最上面的根结点一定是最大的值。如果我们要构建最小堆,则只需要保证根节点总是小于子节点。
给二叉堆每个结点标上序列号

我们可以轻易得出
- 每个结点的左子结点的序列号一定是该结点的两倍
- 每个结点的右子结点的序列号一定是该结点的两倍 + 1
注意:不使用数组第0号位存储
网友评论