图算法中顶点之间的距离

时间:2012-10-18 16:54:32

标签: algorithm graph-theory

我自己的问题:

设G是具有n个顶点和m个边的无向图 我们有一个v_1到v_2的列表,但现在不重要了 每条边的重量等于X.
我们的任务是找到从v_i到v_j的最快路径为w = 2X的所有对(v_i,v_j)。

(看例子)

有可能比野蛮v * dikstra或v * v ??更快。这个问题可以在O(n ^ 2)时间内解决吗?哪种算法最好? 感谢您的帮助。

示例:

    n = m = 5
    v_1 -> v_2 -> v_3 -> v_4 -> v_5 and v_1 -> v_3

解决方案:

(1,4),(2,4),(3,5)

图片:http://i.stack.imgur.com/rVhee.gif

从v_1到v_4的最短路径是2X(与其他解决方案相同)。

编辑:我们有邻接名单。

1 个答案:

答案 0 :(得分:1)

  

有可能比野蛮v * dikstra或v * v ??更快。能够   这个问题可以用$ O(n)$或$ O(n log n)$ time来解决?

您不能比O(n^2)(= O(v*v))更好,因为输出可能包含O(n^2)个不同的条目,例如:

          a
          |
     b----c----d
          |
          e

除了source / target = c之外,每个顶点到每个顶点都有一条长度为2的路径。对此图表进行推广将获得具有所需距离的O(n^2)