堆是什么?数据结构中堆的基本操作详解

堆是基于完全二叉树的特殊结构,用数组存储,满足大顶堆(父节点值≥子节点)或小顶堆(父节点值≤子节点)性质,能高效获取最值,广泛应用于算法。数组索引映射父子关系:左子节点2i+1,右子节点2i+2,父节点(i-1)//2。大顶堆根节点最大(如[9,5,7,3,6,2,4]),小顶堆根节点最小(如[3,6,5,9,7,2,4])。核心操作:插入(新元素放末尾,上浮调整至父节点满足堆性质)、删除(交换堆顶与末尾元素,下沉调整至堆顶满足性质)、构建堆(从最后非叶子节点开始依次下沉调整)、获取堆顶(直接取根节点)。应用于优先队列、堆排序、Top K问题。堆结构与操作高效,对理解算法至关重要,初学者可从数组模拟入手掌握。

阅读全文