贪心法——C语言实现最小代价生成树

【最小代价生成树】

无向连通图G:含n个顶点

若G存在由n-1条边连通n个顶点的子图G',则称G'为G的一棵生成树。

若G的每一条边都赋了一个权值,则称此图为网络。

最小代价生成树:在一个网络的各种生成树中,具有最小代价的生成树。

【普里姆算法】

设网络G={ V,E },V={ 0,1,2,3,…,n-1 },设U为V的子集(初始U为空集);

然后从集合V-U中找出一个顶点x;

该顶点x与集合U中的某点之间的边是最小权边且不会造成回路;

然后将顶点x加入集合U中;

反复执行同样的步骤,直到U=V为止。

【克鲁斯卡尔算法】

将所有边按权值由小到大排序,然后从权值最小的边开始选起,构架最小生成树,若加入的边会造成回路则舍弃不用,直到所有边被挑完为止。

未完待续…

你可能感兴趣的:(贪心法——C语言实现最小代价生成树)