Prim:每轮接入一个最近的外部顶点
从 A 出发;`lowCost[v]` 表示外部顶点 v 到当前树集合的最小边权。

1. 初始树集合 {A}

外部顶点BCDEF
lowCost1(A)2(A)
选择 `lowCost` 最小的外部顶点 B,将边 AB 加入生成树。

2. 接入 B,更新 lowCost

外部顶点CDEF
lowCost2(A)3(B)
B 的邻接边只会影响仍在树外的顶点。当前最小值是 C 的 2,下一轮接入 C。

3. 接入 C,更新 lowCost

外部顶点DEF
lowCost3(B)1(C)4(C)
C 使 E 的接入代价变为 1,这是当前最小值,因此下一轮接入 E。

4. 接入 E,更新 lowCost

外部顶点DF
lowCost2(E)2(E)
D 与 F 的最小接入代价同为 2。本例按顶点字母顺序处理并接入 D。

5. 接入 D,更新 lowCost

外部顶点F
lowCost1(D)
只剩一个外部顶点时,按当前最小接入边将其加入生成树。

6. Prim 生成树完成

选中边为 AB、AC、CE、DE、DF,总权值为 1+2+1+2+1=7。它是一棵最小生成树。
方向键可翻页