实现步骤概览

flowchart TD A( 设计代码块) --> B( 读取数据并根据算法分析所执行流程保存到快照中) B --> C( 根据现有数据初始化) C --> D( 绑定各个按键) D --> E( 读取快照并逐步演示) click A showStepCode "查看步骤1代码" click B showStepCode "查看步骤2代码" click C showStepCode "查看步骤3代码" click D showStepCode "查看步骤4代码" click E showStepCode "查看步骤5代码" classDef main fill:#eef3ff,stroke:#2f6ff0,color:#1f2a44,stroke-width:1px; class A,B,C,D,E main;
示例代码:步骤1(设计代码块)

1)冒泡排序

字段 含义
type 当前步骤类型:compare / swap / sorted / done
i 当前操作的第一个下标(比较或交换时的左位置)。
j 当前操作的第二个下标(比较或交换时的右位置)。
codeLine 需要高亮的伪代码行号列表。
arr 该步骤下数组完整快照,用于渲染当前画面。

2)快速排序

字段 含义
arr 当前数组快照。
info 该步骤的解释文本。
codeLine 需要高亮的伪代码行号列表。
l, r 当前递归处理区间边界。
pivotIndex 当前基准值(pivot)所在下标。
i, j 分区扫描指针位置。
doneList 已确定最终位置的下标集合(数组形式)。
done 可选,是否进入最终完成状态。

3)归并排序

字段 含义
arr 当前数组快照。
info 步骤讲解文本。
codeLine 高亮代码行号。
l, mid, r 当前区间及中点。
write 当前写回到原数组的下标。
doneRange 当前已确认有序的连续区间。
done 可选,整体排序是否完成。

4)二分查找

字段 含义
arr 有序数组快照。
target 目标值。
low, high 当前查找区间边界。
mid 当前中点下标。
hit 命中下标(未命中通常为 -1)。
info 步骤讲解文本。
codeLine 高亮代码行号。
done 可选,查找是否结束。

5)线性时间选择

字段 含义
arr 当前数组快照。
info 步骤讲解文本。
codeLine 高亮代码行号。
l, r 当前递归区间边界。
pivot 当前选定主元值(中位数的中位数)。
lt, eq 三路划分后“<pivot”和“=pivot”区间的分界下标。
k 目标秩对应的下标(第 k+1 小)。
answer 可选,最终选出的第 k 小值。
done 该步骤是否已得到最终答案。

6)哈夫曼编码

字段 含义
nodes 当前所有结点映射表(key 为结点 id);每个结点含 id, label, weight, left, right, order
activeIds 当前“森林”中仍活跃的根结点 id 集合。
type 步骤类型:init / pick / merge / done
selectedIds 本轮被选中的两个最小权结点 id。
newId 本轮新合并出的结点 id(或最终根 id)。
codeLine 高亮代码行号。
info 步骤讲解文本。
codes 可选,最终字符编码表。
wpl 可选,最终带权路径长度。

7)最长公共子序列

字段 含义
dp 当前 DP 矩阵完整快照。
message 步骤讲解文本。
phase 阶段标记(如填表、回溯、完成)。
codeLine 高亮代码行号。
activeCell 当前处理的 DP 单元坐标。
fromCell 当前转移来源单元坐标。
trace 回溯路径坐标序列。
cursor 回溯阶段当前光标位置。
moveTo 回溯阶段下一步将移动到的位置。
lcsPartial 当前已构造的 LCS 片段。
lcsFinal 可选,最终 LCS 串。

8)矩阵连乘

字段 含义
m 最优代价矩阵快照(m[i][j] 为子链最小乘法次数)。
s 最优划分点矩阵快照(s[i][j] 为最佳 k)。
type 步骤类型(init/len/target/try/update/done)。
target 当前正在求解的目标状态坐标 [i, j]。
sources 当前转移依赖的子问题坐标列表。
best 当前被视为最优的目标状态标记。
current 当前尝试的划分信息 [i, k, j]。
codeLine 高亮代码行号。
info 步骤讲解文本。
stateText 当前状态摘要文本。
bestValue 可选,最终全局最优代价。
bestPlan 可选,最终最优加括号方案。

9)0-1背包

字段 含义
nodes 状态树结点数组快照;结点常见字段有 id, parentId, depth, order, itemIndex, take, weight, value, path, status,分支限界额外有 bound
algo 当前算法模式:backtrackbranchbound
activeId 当前正在访问/展开的结点 id。
bestNodeId 当前最优解对应的结点 id。
bestValue 当前已知最优总价值。
bestPath 当前最优决策路径(位串,1 取 0 不取)。
codeLine 高亮代码行号。
info 步骤讲解文本。
stateInfo 状态补充文本(队列大小、剪枝原因等)。
resultDone 是否到达最终结果步骤。
finalItems 可选,结束时用于还原原物品信息的列表。