图的最短路径算法对比
图的最短路径算法对比
| Floyd | Dijkstra | Bellman-Ford | 队列优化的Bellman-Ford | |
|---|---|---|---|---|
| 空间复杂度 | O(N^2) | O(M) | O(M) | O(M) |
| 时间复杂度 | O(N^3) | O((M+N)logN) | O(NM) | 最坏情况下也是O(NM) |
| 适用情况 | 稠密图 | 稠密图 | 稀疏图 | 稀疏图 |
| 负权 | 可以解决 | 不能解决 | 可以解决 | 可以解决 |
| 有负权边 | 可以处理 | 不能处理 | 可以处理 | 可以处理 |
| 判断是否有负权回路 | 不能 | 不能 | 可以判定 | 可以判定 |
Floyd算法整体时间复杂度高,但可以处理带有负权边的图(无法处理负权回路),编码复杂度小
Dijkstra算法无法处理带有负权边以及负权回路的图,但具有可扩展性
Bellman-Ford算法可以处理带有负权边和负权回路的图
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星辰微光的博客!




