堆
大雪菜的课(笔记)
数据结构(二)
3.堆
(1).模板(堆 —— 模板题 AcWing 838. 堆排序, AcWing 839. 模拟堆)
// h[N]存储堆中的值, h[1]是堆顶,x的左儿子是2x, 右儿子是2x + 1
// ph[k]存储第k个插入的点在堆中的位置
// hp[k]存储堆中下标是k的点是第几个插入的
int h[N], ph[N], hp[N], size;
// 交换两个点,及其映射关系
void heap_swap(int a, int b)
{
swap(ph[
原创
2020-07-13 14:25:39 ·
110 阅读 ·
0 评论