327 floyd算法1 #
- 问题描述
- 算法原理
- floyd和dijkstra的比较
问题描述 #
floyd算法也是用于求图中的最短路径的,该算法基于动态规划不断更新最短距离,直到遍历所有的点。
算法原理 #
该算法的流程相当简单,假设map[i][j]是当前i到j的最短距离,如果存在某个中间点k使得map[i][j]>map[i][k]+map[k][j],则更新map[i][j],用数学表达式则为:
- 从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大
- 对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从u到w再到v比已知的路径更短,如果更短则更新它
- 重复上述流程直到计算出所有值
floyd和dijkstra的比较 #
小结 #
习题 #
- floyd算法是最优解吗?
- 你知道为何dijkstra不能处理负权重吗?查阅相关资料并和同学讨论