原文链接:https://www.yuque.com/cppdev/algo/rg61at
其他相关链接:
普利姆算法
思想
- 从某个顶点开始(不要把它看成一个单独的顶点,把它看成只有一个结点的子生成树)
- 在第一步的生成树的相邻边中,选一条最小的边,将最小的边和边的另一个结点并入子生成树中(生成树就长大了一点)
- 继续,直到所有的顶点都被并入了生成树
步骤
- 取图中任意一个顶点 v 作为生成树的根,之后往生成树上添加新的顶点 w
- 在添加的顶点 w 和已经在生成树上的顶点v 之间必定存在一条边,
- 并且该边的权值在所有连通顶点 v 和 w 之间的边中取值最小。