DATA STRUCTURE / LIVE DEBUGGER

让堆的每一次
交换都看得见

数组、隐式二叉树、关键下标和 C# 代码保持同步。手动模式适合逐步调试,自动模式每两秒推进一步。

STEP 011 / 5
当前逻辑

插入前

最大堆已经就绪

父节点的优先级都大于等于它的孩子,因此堆顶 90 是当前最大值。

WHY

堆不要求整个数组有序,只维护“父节点 ≥ 子节点”。

INDEX RULE parent = (i - 1) / 2 left = 2 * i + 1 right = 2 * i + 2
同步结构

数组是一棵隐式树

当前位置参与比较
LIST / HEAP[90, 70, 80, 30, 50, 60]
FIFO → HEAP SCHEDULER

堆已经存在,
为什么顺序可能没变?

当前可验证链路消费两级 FIFO。下面的堆模式与稳定序号是教学演进;默认不抢占活动消息,也不实现老化。

01 / ARRIVE

这一步改变了什么

WHY

WAITING / ACTIVE / POOL

提示生命周期

等待区

    活动区

      对象池

        HEAP ARRAY
          THE CORE IDEA

          堆维护的不是完整顺序,
          而是当前最值

          01

          结构映射

          完全二叉树按层写进数组,因此不需要额外保存节点和指针。

          02

          局部修复

          插入只向父节点移动,弹出只向更大的孩子移动,每次最多走一条树高。

          03

          时间复杂度

          查看堆顶是 O(1),插入与弹出是 O(log n),适合持续变化的优先级队列。

          阅读完整原理与工程应用 →