对于无向,未加权的图,算法的时间复杂度是否有任何差异来计算其平均最短路径长度vs计算图表直径的算法的复杂度,即最长的最短路径两个顶点?
答案 0 :(得分:2)
根据Wikipedia,要计算图的直径,首先应找到全对最短路径。在计算了所有对最短路径之后,两种算法都减少到O(V ^ 2)计算,因此它们的复杂性是相同的。
答案 1 :(得分:1)
我没有读过很多关于这个主题的文献,但我怀疑两者是相同的。但是如果存在差异,我会说计算图表的直径可能会渐近变快。
我的算法都是使用在V*(E+V*log(V))
中运行的Dijkstra算法计算所有对最短路径。然后,对于平均值,您将对所有这些值取算术平均值。我没有办法让你加快速度。
然而,为了计算图表的直径,可能会有一些巧妙的技巧可以用来加速这个过程。但作为一个上限,你可以简单地在所有对最短路径上取上限来获得直径,这与计算平均最短路径具有相同的运行时复杂度。
答案 2 :(得分:0)
两者之间的时间复杂度不应该有任何差异。
您可以通过调整最短路径算法找到两个顶点之间的最长路径。