c++--

堆是一种特殊的完全二叉树 数据结构,广泛用于优先队列堆排序 以及图算法 等场景。堆分为最大堆 (大顶堆)和最小堆(小顶堆),分别满足父节点值大于等于或小于等于子节点值的特性。

堆的存储与操作

堆通常使用数组存储,利用完全二叉树的性质:

  • 父节点索引:(i-1)/2

  • 左子节点索引:2*i+1

  • 右子节点索引:2*i+2

堆的核心操作包括:

  1. 上浮操作:用于插入新元素后调整堆。

  2. 下沉操作:用于移除堆顶元素后重新调整堆。

  3. 建堆操作 :将无序数组构建为堆,常用自底向上法,时间复杂度为O(n)

相关推荐
无忧.芙桃2 分钟前
C++IO库的超详细讲解
开发语言·c++
爱看书的小沐27 分钟前
【小沐学GIS】基于C++渲染三维飞行仿真Flight Simulation(OpenGL )第十三期
c++·qt·webgl·opengl·飞行仿真·flight
你撅嘴真丑38 分钟前
最大质因子序列
c++
努力努力再努力wz1 小时前
【MySQL进阶系列】一文打通事务机制:从锁、Undo Log 到 MVCC 与隔离级别
c语言·数据结构·数据库·c++·mysql·算法·github
澈2071 小时前
C++ string全面解析:从入门到精通
数据结构·c++·算法
无忧.芙桃1 小时前
现代C++讲解之变量模板,泛型lambda,函数返回类型推导的使用
开发语言·c++·visualstudio
郝学胜-神的一滴1 小时前
[简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导
c++·unity·图形渲染·three.js·unreal engine
zh_xuan1 小时前
api调试工具增加支持输入请求头
c++·libcurl
纽扣6672 小时前
【算法进阶之路】链表核心:快慢指针与反转链表专题精讲
数据结构·c++·算法·链表
lzh200409192 小时前
Linux管道(Pipe)深度指南:从原理到实战
linux·c++