最小生成树 (MST) 使用 最小总边权重 连接加权连通图的所有顶点,且不形成环。Kruskal 和 Prim 是两个经典的贪心算法。
Kruskal(排序边 + 并查集)
按权重对所有边进行排序;添加不形成环的最便宜的边。
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
