prime算法
prime算法生成最小生成树(Minimum Cost Spanning Tree)的一种算法。
prime算法是从指定的顶点开始构建最小生成树。
prime算法思想如下:
从连通图(V,E)中找最小生成树(U,TE):
(1)假设从顶点V0出发开始构造,U={V0},TE={};
(2)先找权值最小的边(u,v),u属于U,v属于V-U,并且子图不构成环,则U=U并{v},TE=TE并(u,v);
(3)重复(2),直到U=V。
prime算法的时间复杂度是O(n^2),与边数无关,适合形成稠密的图的最小生成树。
图解如下:
prime算法程序如下:
// 图(无向图)的邻接矩阵
// 两个顶点之间没有边的用Number.MAX_VALUE来表示权值
var maxValue = Number.MAX_VALUE;