最小全域木 (MST) は、加重連結グラフのすべての頂点を最小の総辺重みで接続し、サイクルを持たないグラフです。Kruskal と Prim は 2 つの古典的なグリーディアルゴリズムです。
Kruskal (辺をソート、union-find)
すべての辺を重みでソートします。サイクルを形成しない最も安い辺を追加します。
python
():
parent = ((n))
():
parent[x] != x:
parent[x] = parent[parent[x]]
x = parent[x]
x
mst, total = [],
w, u, v (edges):
ru, rv = find(u), find(v)
ru != rv:
parent[ru] = rv
mst.append((u, v, w)); total += w
mst, total
