关于 最短路径问题的 算法的 一些乱七八糟的 总结
· Dijsktra——单源有权最短路径
· 无负权边
· 基于贪心
· 朴素版Dijsktra O(n^2) 适用于稠密图
//朴素版的基于链式前向星和邻接表的时间复杂度为 O((n+m)logn) ,对于稠密图来说比 O(n^2) 还慢。
· 堆优化版Dijsktra O(mlogn) 适用于稀疏图
· 例题
· Bellman-Ford——有向图单源有权最短路径
· 有负权边,可以判断负环
· 能处理边数限制的最短路
· O(nm)
· 当dis在第n次循环继续被更新,说明图中出现负环
· 例题
· SPFA——同Bellman-ford
· Bellman-Ford的队列优化
· 可有负权边,不能有负环
· 一般O(m) 最坏O(nm)
· 好写、效率快、能处理几乎所有类型图,但正权图基本不使用
· 卡菊花图
· Floyd——多源汇最短路
· 可有负权边
· 基于动态规划
· O(n^3) //n<=800
· 例题