堆的 概念

Posted 沿着路走到底

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆的 概念相关的知识,希望对你有一定的参考价值。

堆是一种特殊的完全二叉树。

所有的节点都大于等于(最大堆)或小于等于(最小堆)它的子节点。

最大堆

最小堆

JS中的堆

JS中通常用数组表示堆。

按广度优先

左侧子节点的位置是  2 * index + 1

右侧子节点的位置是  2 * index + 2

父节点的位置是 (index - 1) / 2

 

堆的应用

堆能高效、快速地找出最大值和最小值

时间复杂度:O(1)

找出第 K 个最大(小)元素

第 K 个最大元素

构建一个最小堆,并将元素依次插入堆中。

当堆的容量超过 K,就删除堆顶。

插入结束后,堆顶就是 第 K 个 最大元素。

1

以上是关于堆的 概念的主要内容,如果未能解决你的问题,请参考以下文章

数据结构C语言 《四》二叉树,堆的基本概念以及堆的相关操作实现(上)

堆的 概念

二叉树和堆的概念和特点

数据结构之堆的概念与实现

堆(数据结构系列11)

数据结构:树&堆的概念:持续编辑中