随笔 - 32  文章 - 2  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(3)

随笔档案

文章档案

搜索

  •  

积分与排名

  • 积分 - 8416
  • 排名 - 1249

最新评论

阅读排行榜

评论排行榜

根据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 阅读(378) 评论(0)  编辑 收藏 引用

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