最短路径算法
定义
最短路径算法用于寻找图中两个节点之间的权重和最小的路径,根据图的类型(有无负权重、单源/多源)选择不同算法。
常见算法
| 算法 | 适用场景 | 时间复杂度 | 支持负权重 |
|---|---|---|---|
| Dijkstra | 单源、非负权重 | O((V+E)logV) | ❌ |
| Bellman-Ford | 单源、可含负权重 | O(VE) | ✅ |
| A* | 单源、有启发函数 | 取决于启发函数 | ❌ |
| Floyd | 多源 | O(V³) | ✅ |
相关概念
- 最短路径:问题定义
- Dijkstra算法:最常用的最短路径算法
- BFS:无权图的最短路径(Dijkstra 特例)
- 加权图:边带权重的图