图 Dijkstra 最短路径算法动画

Dijkstra + Code Flow
速度 1.0x
未确定 当前节点 距离更新 已确定
最短距离:等待开始
选择起点,然后点击“开始 Dijkstra”。
代码执行流
1 function dijkstra(start) {
2 dist[start] = 0;
3 pq.push([start, 0]);
4 while (pq.length) {
5 [u, d] = extractMin(pq);
6 if (visited.has(u)) continue;
7 visited.add(u);
8 for ([v, w] of graph[u]) {
9 if (dist[u] + w < dist[v]) {
10 dist[v] = dist[u] + w;
11 prev[v] = u;
12 pq.push([v, dist[v]]);
13 }
14 }
15 }
16 }
优先队列
队列为空
距离表 dist
执行日志