最短路径算法对比分析
Floyd | Dijkstra | Bellman-Ford | 队列优化的Bellman-Ford | |
空间复杂度 | O(N^3) | O(M) | O(M) | O(M) |
时间复杂度 | O(N^3) | O((M+N)logN) | O(NM) | O(NM) |
适用情况 | 稠密图 和顶点关系密切 | 稠密图 和顶点关系密切 | 稀疏图 和边关系密切 | 稀疏图 和边关系密切 |
负权 | 可以解决 | 不能解决 | 可以解决 | 不能解决 |
所求 | 求两点间最短路 | 求某点到所有点最短路 | 求某点到所有点最短路 | 求某点到所有点最短路 |
思路 | 三层循环枚举桥梁判断是否通过桥梁会有更短路 | 从所求点更新周围所有点然后每次走到最近的点 | 枚举所有边判断是否通过边能更新dis | 与未优化差不多,只是用了队列 |