最短路径算法总结

简介

最短路

在一个图中有 n 个点、m 条边。边有权值,权值可正可负。边可能是有向的,也可能是无向的。给定两个点,起点是 s,终点是 t,在所有能连接 s 和 t 的路径中寻找边的权值之“和” 最小的路径,这就是最短路径问题。

最短路有两种:

  • 单源最短路:从单个节点出发,到所有节点的最短路;

  • 多源最短路:整个图中所有点到其他点的最短路。

总结

算法 应用场景 时间复杂度 处理负权边 处理负权回路
\(BFS\) 无权图 \(O(E+V)\) - -
\(Floyd\) 加权图、多源最短路径 \(O(V^3)\) \(\checkmark\) \(\times\)
\(Dijkstra\) 边为正权、单源最短路径 \(O(E \times logE)\) \(\times\) \(\times\)
\(Bellman-Ford\) 存在负权边、单源最短路径 \(O(V \times E)\) \(\checkmark\) \(\checkmark\)
\(SPFA\) 存在负权边、单源最短路径 \(O(V \times E)\) \(\checkmark\) \(\checkmark\)

参考

posted @ 2024-03-22 11:22  LARRY1024  阅读(47)  评论(0编辑  收藏  举报