我自己的问题:
设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(与其他解决方案相同)。
编辑:我们有邻接名单。答案 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)
对