四大最短路径算法比较

Posted 戴林甫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四大最短路径算法比较相关的知识,希望对你有一定的参考价值。

 FloydDijkstraBellman-Ford队列优化的Bellman-ford
空间复杂度 O(N²) O(M) O(M) O(M)
时间复杂度 O(N3) O((M+N)logN) O(NM) O(NM)
适用情况 稠密图,和顶点关系密切 稠密图,和顶点关系密切 稀疏图,和边关系密切 稀疏图,和边关系密切
负权 可以解决 不能解决 可以解决 可以解决

注1:N为定点数,M为边数

注2:  Floyd的编码复杂度较小,均摊到每个点上的时间复杂度并不算太高,如果是求所有点对间的最短路径,或数据范围较小,Floyd算法较为合适

注3: Dijkstra用堆优化后,时间复杂度可以达到O(MlogN),具有良好的扩展性,最大的缺点是不能解决负权的问题

 

以上是关于四大最短路径算法比较的主要内容,如果未能解决你的问题,请参考以下文章

dijkstra算法学习

[总结]最短路径算法

为啥全对最短路径算法使用负权重?

图的最短路径和拓扑排序

最短路径 Dijkstra 算法为啥边上的权值非负阿?

求图中任意两点之间最短路径有啥算法?