Algorithm 图的平均最短路径长度和直径算法在时间复杂度上是否存在差异?

Algorithm 图的平均最短路径长度和直径算法在时间复杂度上是否存在差异?,algorithm,graph,complexity-theory,graph-algorithm,Algorithm,Graph,Complexity Theory,Graph Algorithm,对于无向无权图,计算其平均最短路径长度的算法的时间复杂度vs,计算图直径的算法的复杂度,即,两个顶点之间的最长最短路径?否两个顶点之间的时间复杂度不应有任何差异 通过调整最短路径算法,可以找到两个顶点之间的最长路径。我没有读过多少关于这个主题的文献,但我怀疑这两个是相同的。然而,如果存在差异,我会说计算图的直径可能会渐进地更快 我的算法是使用Dijkstra算法计算所有对的最短路径,该算法在V*(E+V*log(V))中运行。然后取所有这些值的算术平均值作为平均值。我看不出有什么办法可以加快速度

对于无向无权图,计算其平均最短路径长度的算法的时间复杂度vs,计算图直径的算法的复杂度,即,两个顶点之间的最长最短路径?

否两个顶点之间的时间复杂度不应有任何差异


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

我没有读过多少关于这个主题的文献,但我怀疑这两个是相同的。然而,如果存在差异,我会说计算图的直径可能会渐进地更快

我的算法是使用Dijkstra算法计算所有对的最短路径,该算法在
V*(E+V*log(V))
中运行。然后取所有这些值的算术平均值作为平均值。我看不出有什么办法可以加快速度


然而,对于计算图形的直径,可能有一些聪明的技巧可以用来加速这个过程。但作为上界,您只需取所有对最短路径的上确界即可获得直径,其运行时复杂性与计算平均最短路径相同。

根据,要计算图的直径,您应该首先找到所有对最短路径。在计算所有对最短路径后,两种算法都简化为O(V^2)计算,因此它们的复杂性相同。

Dijkstra算法只计算单源最短路径,而不是所有对最短路径。Dijkstra算法的一个改进是计算所有对最短路径的Johnson算法,在某些情况下它的性能优于Floyd Warshall。只需在所有单个源上运行Dijkstra算法。它仍然比FW快。@tskuzzy-Johnson的算法基本上是在对图形进行预处理以消除任何负权重边之后完成的。:-)