几种最短路算法对比
!> 众所周知,关于SPFA,它死了。
几种最短路算法对比:
名称 | 时间复杂度 | 优点 | 缺点 | 使用情况 |
---|---|---|---|---|
Floyd-Warshall | 仅有的多源最短路径算法(即跑一遍Floyd能求出每个点到其它点的距离)、其核心代码就 5 行 | 时间复杂度过高 | 多源最短路、对时间复杂度没要求 | |
Dijkstra(朴素) | 编码复杂度非常高、不能处理负权,即边的权值是负数的情况(跟它用的是贪心有关) | |||
Dijkstra(优先队列优化) | 最快了 | 同朴素版 | 对时间复杂度有要求 | |
Bellman-Ford | 跟Dijkstra时间复杂度互有胜负,有时还是 Dijkstra赢了 | 稀疏图 | ||
SPFA | 最坏也是 |
优化版Bellman-Ford | 众所周知,它死了 | 稀疏图 |
Jonson | 仅有的全源最短路算法,结合了 Dijksra 和 SPFA 的优势 | 不怎么常用…… | ||
BFS | 思路简单 | 只能处理等权图或无权图 | 等权图/无权图 |
注:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具