随笔 - 32  文章 - 2  trackbacks - 0
<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

常用链接

留言簿(3)

随笔档案

文章档案

搜索

  •  

积分与排名

  • 积分 - 8782
  • 排名 - 1247

最新评论

阅读排行榜

评论排行榜

根据floyd算法,三重循环即可求出有向图中每一对顶点间的最短距离。

1……
2for (int k=1;k<=n;++k)
3 for (int i=1;i<=n;++i)
4  for (int j=1;j<=n;++j)
5   if (dis[i][j]>dis[i][k]+dis[k][j]) dis[i][j]=dis[i][k]+dis[k][j];
6……


但是,中间节点k一定要处在最外层循环。
考虑 dis[i][j]>dis[i][k]+dis[k][j] 的情况。如果继续循环,dis[i][k]与dis[k][j]的距离都有可能被更新。如果 i、j 是外层循环,dis[i][j]将不再被更新。这样便不能保证dis[i][j]的最优解。
posted on 2008-04-11 21:42 Joseph 阅读(393) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理