首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

看一下这个图的最小生成树是啥解决思路

2013-12-02 
看一下这个图的最小生成树是啥原图来自书《data structures and algorithm analysis in C》,Mark Allen Weis

看一下这个图的最小生成树是啥
看一下这个图的最小生成树是啥解决思路
原图来自书《data structures and algorithm analysis in C》,Mark Allen Weiss, figure 9.48.从v1开始用prim算法生成最小树。

原图中(v1,v4)=1,(v3,v4)=2,用prim算法算最小生成树没问题。但我改成现在这样,如果再用prim算法,算出来的最小生成树形状和原来的一样,但是v1到v4到v3总价值为5,而如果直接从v1到v3,总价值只需要4,但是用prim算法好像算不出来。是我把算法理解错了吗? graph algorithm prim 算法
[解决办法]
你算的是最小生成树不是最短路径。连接v1 v3 v4需要2条边,总和最小的当然还是v1-v4-v3。你如果选了v1-v3,那么为了连接v4你还需要连一条边,总和就要比v1-v4-v3要大了。
[解决办法]
帮FM补充一下,最小生成树求的是 最小代价的前提下使整个图连通,
也就是不一定非要从v1开始,v1到哪里比较近和Prim没有关系。
Prim代码上简单变一下就变成Dijkstra了,楼主对比一下他们的区别就明白了。

热点排行