c++--

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

堆的存储与操作

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

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

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

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

堆的核心操作包括:

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

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

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

相关推荐
wregjru2 小时前
【读书笔记】Effective C++ 条款3:尽可能使用const
开发语言·c++
历程里程碑3 小时前
滑动窗口秒解LeetCode字母异位词
java·c语言·开发语言·数据结构·c++·算法·leetcode
Tandy12356_3 小时前
手写TCP/IP协议栈——TCP结构定义与基本接口实现
c语言·网络·c++·网络协议·tcp/ip·计算机网络
Helibo443 小时前
2025年12月gesp3级题解
数据结构·c++·算法
西幻凌云4 小时前
初始——正则表达式
c++·正则表达式·1024程序员节
沧澜sincerely4 小时前
蓝桥杯101 拉马车
c++·蓝桥杯·stl
w-w0w-w5 小时前
运算符重载
c++
持梦远方5 小时前
持梦行文本编辑器(cmyfEdit):架构设计与十大核心功能实现详解
开发语言·数据结构·c++·算法·microsoft·visual studio
小灰灰搞电子5 小时前
C++ 文件操作详解
开发语言·c++·文件操作