Menu
Coddy logo textTech

Pseudo Code

Coddyの「クラスカル法 - グラフアルゴリズム」コースのレッスン 4/9。

kruskal(n, edges):
   parent[i] = i for all i          # 各頂点を独自の集合とする
   total = 0
   repeat until all edges considered:
      pick the unused edge (u, v, w) with the smallest w
      ru = find(u); rv = find(v)
      if ru != rv:                   # サイクルなし
         parent[ru] = rv             # 結合 (union)
         total += w
   return total

find(x):
   while parent[x] != x: x = parent[x]
   return x
  • 各ラウンドで最小の未使用のエッジを選択する(最小選択)ことで、別途ソートを行う必要がなくなります。
  • find はルートまで遡ります。union は一方のルートをもう一方のルートに代入するだけの操作です。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

クラスカル法 - グラフアルゴリズムのすべてのレッスン