对每个顶点执行单源最短路径算法是否可实现全源最短路径求解?
关于Dijkstra重复运行与全源最短路径的疑问解答
是的,对图中每个顶点分别运行Dijkstra算法,完全能得到和Floyd-Warshall算法一致的全源最短路径结果——但有个前提:图中不能存在负权边,毕竟Dijkstra本身无法处理带负权的场景。
不过必须注意效率差异:这种多次运行单源最短路径算法的方式,比Floyd-Warshall低效很多。Floyd-Warshall依托动态规划思路,计算过程中复用了大量中间状态,避免了重复运算;而每次运行Dijkstra都是独立的单源计算,不同顶点的计算过程没有共享任何中间结果,存在大量冗余操作。
内容的提问来源于stack exchange,提问作者Matt Boraske
相关产品推荐
相关产品推荐

