最短路径四种算法——总结篇

最短路

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

最短路有两种:

  • 单源最短路:从单个节点出发,到所有节点的最短路
  • 多源最短路:整个图中所有点到其他点的最短路

无权图

BFS求最短路

有权图

算法\对比 主要适用方向 时间复杂度 处理负权边 处理负权回路
Floyd 带权图的多源最短路径 O(V3) YES NO
Dijkstra 带权图的单源最短路径 O(E*logE) NO NO
Bellman-Ford 带权图的单源最短路径 O(V*E) YES YES
SPFA 带权图的单源最短路径 最坏O(V*E) YES YES

Floyd

传送门

Dijkstra

传送门

Bellman-Ford

传送门

SPFA

传送门

发布了128 篇原创文章 · 获赞 7 · 访问量 5262

猜你喜欢

转载自blog.csdn.net/qq_44691917/article/details/104616471