四大最短路径算法比较
Posted 戴林甫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四大最短路径算法比较相关的知识,希望对你有一定的参考价值。
Floyd | Dijkstra | Bellman-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),具有良好的扩展性,最大的缺点是不能解决负权的问题
以上是关于四大最短路径算法比较的主要内容,如果未能解决你的问题,请参考以下文章