シンボル
データ | ||
---|---|---|
始点から各ノードへの暫定最短距離 | dist | |
最短経路木における親 | parent | |
ノード間の距離 | weight |
始点の決定と初期化 | ||
---|---|---|
始点の距離を0に初期化します。 | dist[s] ← 0 | |
その他のノードの暫定距離を大きな値で初期化します。 | dist[v] ← INF | |
最短経路木の構築 | ||
暫定距離が最小のノードを探します。 | # find minimum | |
暫定距離が最も小さいノードを指します。 | u | |
ノードの暫定距離と親を更新します。 | if dist[v] > dist[u] + weight[u][v]: dist[v] ← dist[u] + weight[u][v] parent[v] ← u | |
最短経路木の暫定エッジを表します。 | (v, parent[v]) | |
最短経路木を拡張していきます。 | Tにuを含める | |
最短経路木を出力 | ||
親の情報から最短経路木を構築します。 |
アニメーション
始点の決定と初期化
最短経路木の構築
最短経路木を出力