摘要: Floyd算法虽然总体时间复杂度高,但是可以解决负权边,并且均摊到每一点对上,在所有算法中还是属于较优的。另外,Floyd算法较小的编码复杂度也是它的一大优势。所以,如果要求的是所有点对间的最短路径,或者如果数据范围较小,则Floyd算法比较合适。 Dijkstra算法最大的弊端是它无法适应有负权边 阅读全文
posted @ 2017-02-28 15:57 walanwalan 阅读(1191) 评论(0) 推荐(0) 编辑
摘要: Bellman-Ford算法在每实施依次松弛后,就会有一些顶点已经求得最短路,此后这些顶点的最短路的估计值就会一直不变,不再收后续松弛操作的影响,但是每次还要判断是否需要松弛,这就浪费时间了。 从上面可以得到启发:每次仅对最短路估计值发生变化了的顶点的所有出边执行松弛操作。 but,如何知道当前哪些 阅读全文
posted @ 2017-02-28 11:33 walanwalan 阅读(1379) 评论(0) 推荐(0) 编辑
摘要: Dijkstra算法虽然好,但是它不能解决带有负权边(边的权值为负数)的图。 接下来学习一种无论在思想上还是在代码实现上都可以称为完美的最短路径算法:Bellman-Ford算法。 Bellman-Ford算法非常简单,核心代码四行,可以完美的解决带有负权边的图。 在一个含有n个顶点的图中,任意两点 阅读全文
posted @ 2017-02-28 10:22 walanwalan 阅读(1137) 评论(0) 推荐(0) 编辑