数据结构--最小生成树

最小生成树

在含有n个顶点的连通网中选择n-1条边,构成一个极小连通图,并使这个连通图的边上的权值之和最小,这就是最小生成树。
构造下图的最小生成树
数据结构--最小生成树_第1张图片

Prim(普利姆)算法

从图中的任意节点出发,选择子树中节点与图中其余节点之间的最小权重边来生成子树,直到得到一棵图G的生成树为止。(以点为基础开始
时间复杂度 O(n^2)
数据结构--最小生成树_第2张图片

普利姆算法构造最小生成树的过程

Kruskal(克鲁斯卡尔)算法

先构造一个只含n个顶点的子图,然后从权值最小的边开始,若它的添加不使子图中产生回路,则在子图上加上这条边,如此重复,直至加上n-1条边为止。(以边为基础
时间复杂度 O(eloge)(e为网中边数)
数据结构--最小生成树_第3张图片

克鲁斯卡尔算法构造最小生成树的过程

你可能感兴趣的:(c/c++,数据结构,图论)