图表的平均最短路径长度和直径算法的时间复杂度是否有任何差异?

时间:2011-08-02 12:16:03

标签: algorithm graph complexity-theory graph-algorithm

对于无向,未加权的图,算法的时间复杂度是否有任何差异来计算其平均最短路径长度vs计算图表直径的算法的复杂度,即最长的最短路径两个顶点?

3 个答案:

答案 0 :(得分:2)

根据Wikipedia,要计算图的直径,首先应找到全对最短路径。在计算了所有对最短路径之后,两种算法都减少到O(V ^ 2)计算,因此它们的复杂性是相同的。

答案 1 :(得分:1)

我没有读过很多关于这个主题的文献,但我怀疑两者是相同的。但是如果存在差异,我会说计算图表的直径可能会渐近变快。

我的算法都是使用在V*(E+V*log(V))中运行的Dijkstra算法计算所有对最短路径。然后,对于平均值,您将对所有这些值取算术平均值。我没有办法让你加快速度。

然而,为了计算图表的直径,可能会有一些巧妙的技巧可以用来加速这个过程。但作为一个上限,你可以简单地在所有对最短路径上取上限来获得直径,这与计算平均最短路径具有相同的运行时复杂度。

答案 2 :(得分:0)

两者之间的时间复杂度不应该有任何差异。

您可以通过调整最短路径算法找到两个顶点之间的最长路径。