Floyd算法:
时间复杂度高,可以解决负权边,并且均摊在每一点对上,在所有算法中还是属于较优的。较小的编码复杂度也是优势,如果要求是所有点之间的最短路径,或者如果数据范围较小,Floyd算法比较适合。
Dijkstra算法:
无法解决负权边的图,但有良好的可扩展性,时间复杂度低,堆优化后的Dijkstra的时间复杂度可以达到O(MlogN)。
Bellman-Ford算法:
可以解决负权边的图,可以判断是否有负权回路。
原文:http://blog.csdn.net/wtyvhreal/article/details/43455105