Algorithm 无环图中最短路径的O(m+;n)复数算法

Algorithm 无环图中最短路径的O(m+;n)复数算法,algorithm,graph,big-o,shortest-path,directed-acyclic-graphs,Algorithm,Graph,Big O,Shortest Path,Directed Acyclic Graphs,对于给定的O(m+n)时间内的无环(no-cyclec)图,解决单源最短路径问题的好算法是什么 我的尝试是用斐波那契堆来实现Dijkstra的算法,但这是O(m+nlogn)可以使用和来实现 首先,对图进行拓扑排序。这就是O(n+m) 然后,遵循递归公式: D(source) = 0 D(u) = infinity if u is before source in the topological sort D(u) = min { D(v) + w(v,u) | for each edge

对于给定的O(m+n)时间内的无环(no-cyclec)图,解决单源最短路径问题的好算法是什么

我的尝试是用斐波那契堆来实现Dijkstra的算法,但这是
O(m+nlogn)

可以使用和来实现

首先,对图进行拓扑排序。这就是O(n+m)

然后,遵循递归公式:

D(source) = 0
D(u) = infinity    if u is before source in the topological sort
D(u) = min { D(v) + w(v,u) | for each edge (v,u) }
对上述递归公式使用DP技术也是
O(n+m)


因为你有一个拓扑排序的图,动态规划将按照拓扑排序的顺序进行,当你处理一些节点时,所有的依赖关系都已经计算出来。

你最喜欢的搜索引擎给出了哪些结果?没有找到任何O(m+n),我找到的最好的例子是Dijkstra和Fibonacci,它是O(m+n logN)谢谢,我会研究拓扑排序!