寻找通过特定顶点之间的最短路径

时间:2015-12-26 00:20:11

标签: algorithm

我有这个问题 给定具有正边缘权重和地标顶点x的有向图G,您的目标是找到从一个顶点v到穿过地标x的另一个顶点w的最短路径的长度。

需要描述问题的O(E log V)算法。 我知道Dijkstra算法的复杂性是O(ElogV)。

请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

如果您首先找到从v到x,p_1以及从x到w的最短路径,使用Dijkstra算法的p_2并将这些路径连接起来,那么这将是从v到w到x的最短路径。

如果路径较短,p',那么在x处分割此路径将产生从v到x,p_1'的路径以及从x到w的路径,p_2',其中p_1'比p_1短,或p_2'比p_2短(否则长度(p_1'+ p_2')>长度(p_1 + p_2))这是矛盾的。

编辑:这显然是O(E logV),因为它只是使用了Dijkstra两次。