最小生成树问题中Kruskal算法和Prim算法的C语言实现

 Kruskal算法:

void Kruskal(Edge E[],int n,int e)
{
 int i,j,m1,m2,sn1,sn2,k;
 int vset[MAXE];
 for (i=0;i 
  
Prim算法:
void prim(MGraph g,int v)
{
 int lowcost[MAXV],min,n=g.vexnum;
 int closest[MAXV],i,j,k;
 for (i=0;i 
  
 
  

【程序系转载,稍加编辑,出处详见http://zhidao.baidu.com/question/155997031.html】

 

 

蚊子小结:

  Krustal算法的运行时间取决于不相交集合数据结构是如何实现的。上述程序使用数组实现不相交集合数据结构,思路简单,但耗时相对较长。另一种实现不相交集合数据结构的方法是采用有根数,在实践上可以到达线性的运行时间。

  Prim算法的运行时间取决于优先队列是如何实现的。如果用二叉最小堆来实现,Prim算法需要O(ElgV)时间,若改用斐波那契堆,则可以将运行时间改进到O(E+VlgV)。

 

 

 

 

 

你可能感兴趣的:(最小生成树问题中Kruskal算法和Prim算法的C语言实现)