最小生成树_Prim_Kruskal

图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。

Prim    O((|V| + |E|) log|V|), performs better when less vertices

首先以一个结点作为最小生成树的初始结点,然后以迭代的方式查询连接初始结点权重最小的边,该边连接的结点并加到最小生成树中,与Dijkstra相似。(加入之后如果产生回路了就要跳过这条边,选择下一个结点。)当所有的结点都加入到最小生成树中后,就找出了这个连通图的最小生成树。


依次添加:A, D, F, B, E, C, G


Kruskal    O((|V| + |E|) log|E|), performs better when less edges

Kruskal算法在找最小生成树结点之前,需要对边的权重从小到大进行排序。将排序好的权重边依次加入到最小生成树中,(如果加入时产生回路就跳过这条边,加入下一条边)。当所有的结点都加入到最小生成树中后,就找到了这个连通图的最小生成树。

依次添加:AD,CE,DF,AB,BE,EG

你可能感兴趣的:(最小生成树_Prim_Kruskal)