How it works?
Coddyの「ダイクストラ法 - グラフアルゴリズム」コースのレッスン 3/9。
dist 配列を保持します:dist[source] = 0 とし、他のすべての頂点は「無限大」(非常に大きな数)で開始します。頂点ごとに visited フラグを保持します。
ステップ・バイ・ステップの手順:
- 未訪問の頂点の中から、
distが最小の頂点uを選択します。到達可能な頂点がない場合は、停止します。 uを訪問済みとしてマークします:その距離はこれで確定となります。- 重み
wの各辺u -> vを緩和(Relax)します:もしdist[u] + w < dist[v]であれば、dist[v]の値を更新して小さくします。 - すべての到達可能な頂点が確定するまで繰り返します。
最後に、依然として無限大のままの頂点は到達不能です(-1 として報告します)。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ダイクストラ法 - グラフアルゴリズムのすべてのレッスン
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)