堆:堆的结构与应用,最小堆和最大堆入门

堆是一种特殊的完全二叉树,核心特点是父节点与子节点满足大小关系(最小堆父≤子,最大堆父≥子),能高效获取极值(堆顶为最小或最大元素),类似优先队列。其底层为完全二叉树,每一层尽量填满,最后一层从左到右排列。数组存储时,左子节点索引=2i+1,右子节点=2i+2,父节点=(i-1)//2。基本操作包括插入(末尾添加后上浮)和删除(堆顶删除后尾元素顶替,再下沉),时间复杂度均为O(log n)。堆广泛用于优先队列(任务调度)、找第k大元素、哈夫曼编码等场景,是高效处理极值问题的关键结构。

阅读全文