最短路径(五)—最短路径算法对比分析

前几节我们针对图的最短路径,依依分析描述了各个算法。


Floyd-Warshall算法http://blog.csdn.net/wtyvhreal/article/details/43315705

Dijkstra算法http://blog.csdn.net/wtyvhreal/article/details/43447497

Bellman-Ford算法http://blog.csdn.net/wtyvhreal/article/details/43450727

Bellman-Ford队列优化http://blog.csdn.net/wtyvhreal/article/details/43453151


最短路径(五)—最短路径算法对比分析_第1张图片


Floyd算法:

时间复杂度高,可以解决负权边,并且均摊在每一点对上,在所有算法中还是属于较优的。较小的编码复杂度也是优势,如果要求是所有点之间的最短路径,或者如果数据范围较小,Floyd算法比较适合。


Dijkstra算法:

无法解决负权边的图,但有良好的可扩展性,时间复杂度低,堆优化后的Dijkstra的时间复杂度可以达到O(MlogN)。


Bellman-Ford算法:

可以解决负权边的图,可以判断是否有负权回路。

你可能感兴趣的:(最短路径,dijkstra,floyd,算法比较,bellman)