堆的 概念
Posted 沿着路走到底
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆的 概念相关的知识,希望对你有一定的参考价值。
堆是一种特殊的完全二叉树。
所有的节点都大于等于(最大堆)或小于等于(最小堆)它的子节点。
最大堆
最小堆
JS中的堆
JS中通常用数组表示堆。
按广度优先
左侧子节点的位置是 2 * index + 1
右侧子节点的位置是 2 * index + 2
父节点的位置是 (index - 1) / 2
堆的应用
堆能高效、快速地找出最大值和最小值
时间复杂度:O(1)
找出第 K 个最大(小)元素
第 K 个最大元素
构建一个最小堆,并将元素依次插入堆中。
当堆的容量超过 K,就删除堆顶。
插入结束后,堆顶就是 第 K 个 最大元素。
1
以上是关于堆的 概念的主要内容,如果未能解决你的问题,请参考以下文章