四大最短路径算法比较

 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),具有良好的扩展性,最大的缺点是不能解决负权的问题

 

posted @ 2017-08-23 22:08  戴林甫  阅读(553)  评论(0编辑  收藏  举报