最小生成树之Prim算法计算机等级考试

文章作者 100test 发表时间 2010:01:02 07:00:07
来源 100Test.Com百考试题网


  Prim算法用于求无向图的最小生成树

  设图G =(V,E),其生成树的顶点集合为U。

  ①、把v0放入U。

  ②、在所有u∈U,v∈V-U的边(u,v)∈E中找一条最小权值的边,加入生成树。

  ③、把②找到的边的v加入U集合。如果U集合已有n个元素,则结束,否则继续执行②。

  其算法的时间复杂度为O(n^2)

  Prim算法实现:

  (1)集合:设置一个数组set(i=0,1,..,n-1),初始值为 0,代表对应顶点不在集合中(注意:顶点号与下标号差1)

  (2)图用邻接阵表示,路径不通用无穷大表示,在计算机中可用一个大整数代替。

  采用堆可以将复杂度降为O(m log n),如果采用Fibonaci堆可以将复杂度降为O(n log n m)

  算法实现

  #include


相关文章


最长上升子序列LIS算法实现计算机等级考试
最大化投资回报问题的实现计算机等级考试
最长公共子串问题的实现计算机等级考试
最小生成树之kruskal算法计算机等级考试
最小生成树之Prim算法计算机等级考试
贪心算法在背包中的应用计算机等级考试
汽车加油问题之贪心算法计算机等级考试
C 多继承的二义性计算机等级考试
VC实现按钮的3D效果计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛