![](/img/trans.png)
[英]Find the shortest path from source to target in a weighted-undirected graph in O(V + E) time
[英]Design an algorithm for the single source shortest path problem that runs in time O(k(|V|+|E|))
假设我们给出了有向图G = (V, E)
具有潜在的正和负边长,但没有负循环。 设s ∈ V
是给定的源顶点。 如果从s到任何其他顶点的最短路径最多需要k edges
如何设计一个在时间O(k(|V | + |E|))
中运行的单源最短路径问题的算法?
这里是O(k(| V | + | E |))方法:
因为任何su最短路径最多是k个边缘,所以我们可以在边缘上的k次迭代之后结束算法
伪代码:
对于顶点中的每个顶点v:
D [v]:= + ooD [s] = 0
重复k次:
对于边缘重量为w的每条边(u,v):
如果D [u] + w <D [v]:
D [v] = D [u] + w
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.