Implementation (Part 2)
Coddyの「ダイクストラ法 - グラフアルゴリズム」コースのレッスン 6/9。
次に、貪欲な最短経路計算です。
チャレンジ
中級それでは、完全なアルゴリズムを構築しましょう。
n、フラットな edges 配列(3つの値の組、有向、非負の重み)、および source を受け取り、位置 v が source から v への最短距離である配列を返す、dijkstra という名前の関数を作成してください。到達できない頂点には -1 を使用してください。
すべての距離を大きな「無限大」で開始し、source だけを 0 に設定します。その後、n 回、最も近い未訪問の頂点を確定させ、その頂点から出るエッジを緩和(relax)します。
自分で試してみよう
#include <stdlib.h>
int* dijkstra(int n, int* edges, int edges_size, int source, int* returnSize) {
// ここにコードを記述してください
*returnSize = 0;
return edges;
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ダイクストラ法 - グラフアルゴリズムのすべてのレッスン
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)