📍 Dijkstra · 单源最短路

▶ 📖 问题描述 & 算法原理

Dijkstra 算法:求解非负权有向图(或无向图)的单源最短路径。每次从未确定的节点中选择距离最小的节点,标记为确定,然后松弛其所有出边。

输入: 有向图(邻接表),源点 s。
输出: 最短距离数组 dist[]。

📌 算法流程

1. 初始化 dist[s]=0,其余为∞,所有节点未确定。

2. 重复 n 次:

- 从未确定节点中选出 dist 最小的节点 u。

- 标记 u 为已确定。

- 对于 u 的每条出边 (u,v,w):

* 若 dist[v] > dist[u] + w,则更新 dist[v]。

贪心选择: 每次选择当前最近节点,确保其距离就是最终最短距离(因为边权非负)。

📊 图 & 距离 & 候选节点

候选节点 (未确定)
📝 当前步骤 0 / 0
点击「下一步」开始演示

📊 距离历史 (每步后)

⬜ 未变  |  🟦 已计算  |  🔵 当前选择  |  🟡 刚更新  |  ✅ 最终
🎉 最短路径已求出! —