最常见的最小生成树,无非就两种:
prim
kruscal。
两者皆为贪心思想,局部最优(或无限接近最优)以达到全局最优的效果。
很多人疑惑,到底什么是最小生成树
维基百科的定义链接:
http://zh.wikipedia.org/wiki/最小生成树
定义很严谨,但是这个定义并不形象。其实最小生成树无非是把无向图转化为树结构的过程,在这个过程中存在一个从出发点遍历图中所有点的过程,为了找到从出发点遍历所有点的最短过程而生成的树即为最小生成树。(意会即可。)
具体可参考:
对于代码,java,c++都是可以的,但是,建议先用C语言走一遍。
POJ相关练习题:
Prim:POJ1258
Kruscal:POJ1863
本文不打算给出代码,网上有很多参考代码,但是,仅限参考,在自己走一遍之后,强烈建议自己写,花一下午,一天,二天去写,去思考细节,然后简化代码,优化空间。
wolfguy,记于10.30.2013