堆
这是一个使用 struct 实现的通用小根堆模板。
C++ Struct 版小根堆模板
[include-code] Error: Failed to read file
ENOENT: no such file or directory, open '/home/runner/work/rbook_nunjucks/rbook_nunjucks/packages/code/data-struture/heap堆.cpp'
/code/data-struture/heap堆.cpp.ENOENT: no such file or directory, open '/home/runner/work/rbook_nunjucks/rbook_nunjucks/packages/code/data-struture/heap堆.cpp'
为什么这个版本心智负担最低?
- 物理直觉强:
- Up: 气球(小值)往上飘。
- Down: 石头(大值)往下沉,而且往更低(更小值)的方向滚。
- 公式简单:
- 不用处理
+1/-1的下标偏移,因为h[0]被废弃了。 - 只有简单的
u/2(找爸爸),u*2(找左娃),u*2+1(找右娃)。
- 不用处理
- Struct 优势:
- 如果你在比赛中调试,可以直接打印
heap.h[i]来查看内部数组状态,没有任何private权限阻挡。
- 如果你在比赛中调试,可以直接打印