算法竞赛备赛——【图论】求最短路径——小结

最短路算法

1.Floyd算法:O(|V|^3),多源最短路,适用于出现负边权的情况,但无法处理存在负权回路的情况。
Floyd算法

2.Dijkstra算法:O(|V|^2),单源最短路,不能处理存在负边权的情况。 边多 时适用
Dijkstra算法 & 堆优化

3.Bellman-Ford算法:O(|V||E|),单源最短路,适用于出现负边权的情况,但无法处理存在负权回路的情况。边少 时使用 可以检验负环
Bellman-Ford算法 & SPFA

4.堆优化Dijkstra算法:O((|V|+|E|)*log|V|),单源最短路,不能处理存在负边权的情况。

5.队列优化Bellman-Ford算法(SPFA):时间复杂度玄学,单源最短路,适用于出现负边权的情况,但无法处理存在负权回路的情况。

SPFA能判断带环负权图

权值非负:堆优化Dijkstra----->SPFA

有负边权:SPFA

相关推荐
Jm_洋洋1 分钟前
【C++进阶】虚函数、虚表与虚指针:多态底层机制剖析
java·开发语言·c++
近津薪荼5 分钟前
优选算法——滑动窗口1(单调性)
c++·学习·算法
头发还没掉光光5 分钟前
Linux 高级 IO 深度解析:从 IO 本质到 epoll全面讲解
linux·服务器·c语言·c++
爱装代码的小瓶子6 分钟前
【C++与Linux基础】进程如何打开磁盘文件:从open()到文件描述符的奇妙旅程(更多源码讲解)
linux·开发语言·c++
diediedei6 分钟前
嵌入式C++驱动开发
开发语言·c++·算法
80530单词突击赢9 分钟前
C++容器对比:map与unordered_map全解析
c++
燃于AC之乐11 分钟前
《算法实战笔记》第10期:六大算法实战——枚举、贪心、并查集、Kruskal、双指针、区间DP
算法·贪心算法·图论·双指针·区间dp·二进制枚举
田野追逐星光12 分钟前
STL中容器list -- 讲解超详细
开发语言·c++·list
diediedei15 分钟前
高性能计算通信库
开发语言·c++·算法
蒸蒸yyyyzwd16 分钟前
算法学习笔记
笔记·算法