Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm SCC最坏情况分析的Tarjan算法_Algorithm_Graph_Tarjans Algorithm - Fatal编程技术网

Algorithm SCC最坏情况分析的Tarjan算法

Algorithm SCC最坏情况分析的Tarjan算法,algorithm,graph,tarjans-algorithm,Algorithm,Graph,Tarjans Algorithm,我在读Donal B.Johnson关于在有向图中寻找所有基本电路的论文 在本文中,他提到了Tarjan算法的最坏情况是O(V*E(c+1)) 尽管在其他地方它都显示为O(V+E),但Johnson paper已经举了几个例子来证明这一点,如图1和图2 图2是一个非常相似的例子,在O(k)时间内找到第一个循环1…k后,根据我的理解,现在所有其他顶点都将简单返回,因为它们的索引已经定义,并且k个顶点需要另一个k时间,所以要将其汇总为2k次而不是k**2,我是否遗漏了一些点 请举例说明,谢谢。“Ta

我在读Donal B.Johnson关于在有向图中寻找所有基本电路的论文

在本文中,他提到了Tarjan算法的最坏情况是O(V*E(c+1)) 尽管在其他地方它都显示为O(V+E),但Johnson paper已经举了几个例子来证明这一点,如图1和图2

图2是一个非常相似的例子,在O(k)时间内找到第一个循环1…k后,根据我的理解,现在所有其他顶点都将简单返回,因为它们的索引已经定义,并且k个顶点需要另一个k时间,所以要将其汇总为2k次而不是k**2,我是否遗漏了一些点


请举例说明,谢谢。

“Tarjan算法”在这种情况下不是强连接组件的算法。这是他列举基本电路的算法。然而,在中,该方法被指出具有紧的最坏情况O((V+E)*(C+1))时间。有趣的是,Tarjan用来证明这个界限(O(V+E)找到两个电路之间的时间)的论点在Johnson的论文中突然发生了变化(O(V*E)找到两个电路之间的时间)。我对这两种算法都不熟悉,所以说不出哪一种是正确的。快速搜索似乎认为Johnson的算法是渐近更快的(尽管两种方法声称时间复杂度相同),但我在Tarjan的论文中找不到反驳时间复杂度的来源。

SIAM论文介绍确实说,基本电路的Tarjan算法需要O(e.v(c+1))