Prim's algorithm Java

2025年5月3日 | 阅读4分钟

Java 中的Prim算法是用于 最小生成树 最常用的算法之一。Prim 算法从一个不包含任何顶点的生成树开始。在 Prim 算法中,我们维护两个顶点集合,第一个包含已包含在 MSP 中的顶点,第二个包含未包含在 MSP 中的顶点。

在每一步,它会考虑连接这两个集合的所有边,并从这些边中选择权重最小的边。选择一条边后,它将该边的另一端(包含 MST 的那一端)添加到 MST 中。

Prim's algorithm Java

Prim 算法

  • 创建一个包含唯一元素的集合,用于跟踪已包含在 MST 中的顶点。
  • 对于输入图的所有顶点,为其分配一个键值对,并将值初始化为无穷大。为了选择第一个顶点,我们将它的键值设置为 0。
  • 选择一个不在 setOfMST 中的顶点 u,且其键值最小。
  • 将顶点 u 添加到 setOfMST。
  • 更改 u 的所有相邻顶点的键值。

注意:为了更新相邻顶点 v 的键值,如果边 u-v 的权重小于 v 的先前键值,则将键值更改为 u-v 的权重。

  • 重复步骤 3、4 和 5,直到 setOfMST 包含所有顶点为止。

让我们在 Java 中实现 Prim 算法的代码。

MinimumSpanningTreeExample.java

输出

Prim's algorithm Java