Live2D
博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

算法整理:Floyd_多源最短路

首先,个人感觉起来,在四大最短路算法中,Floyd是最简单的,也是最好理解的,但是严重受时间和空间的限制。存图方式为二维数组。

复杂度:T:O(n^3)    M:O(n^2)

思路:O(1)

核心思想:

主题部分通过三个for循环(分别代表中点,起始点,目标点),通过每局来进行松弛操作,不断更新两点之间的最短路径。但是要注意循环的顺序:中点在第一层,点对在二、三层。使用dp的思想

,更新 map[i][j]=min(map[i][j],map[i][k]+map[k][j])

 

核心代码:

for(int k=1;k<=n;++k)
  for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
    {
        map[i][j]=min(map[i][j],map[i][k]+map[k][j]);
    }

 

posted @ 2018-12-12 21:06  _hhs  阅读(177)  评论(0编辑  收藏  举报