看一下这个图的最小生成树是啥

RMC_York 2013-10-20 09:32:07

原图来自书《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算法好像算不出来。是我把算法理解错了吗?
...全文
160 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2013-10-20
  • 打赏
  • 举报
回复
你算的是最小生成树不是最短路径。连接v1 v3 v4需要2条边,总和最小的当然还是v1-v4-v3。你如果选了v1-v3,那么为了连接v4你还需要连一条边,总和就要比v1-v4-v3要大了。
那闯 2013-10-20
  • 打赏
  • 举报
回复
帮FM补充一下,最小生成树求的是 最小代价的前提下使整个图连通, 也就是不一定非要从v1开始,v1到哪里比较近和Prim没有关系。 Prim代码上简单变一下就变成Dijkstra了,楼主对比一下他们的区别就明白了。

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧