Java: Kruskal算法生成最小生成树(邻接矩阵):
package
输出:
Kruskal=36: (E,F) (C,D) (D,E) (B,F) (E,G) (A,B)
分析:
Java: Kruskal算法生成最小生成树(邻接矩阵)
克鲁斯卡尔(Kruskal)算法
Kruskal算法和Prim算法相比,就是Kruskal算法从边出发,不断寻找当前未添加进Et的、且权值最小的边,若添加后不形成环,则添加成功;
因为形成环,说明已经是连同了,这条边是不需要的。否则跳过,
继续尝试添加下一条边。最后,判断边的数量arcnum是否是点的数量vexnum-1,若是则最小生成树构造成功,否则失败。
Prim算法与顶点相关时间复杂度O(|V|2),所以适合顶点少边多的图;
Kruskal反之,算法与边相关,时间复杂度为O(|E|log|E|),所以适合边少顶点多的图;
图解: