为什么在无向图中,检测循环的DFS时间复杂度是O(|V|),而不是O(|V| + |E|)?

5

请问有人能详细解释一下,为什么并且如何使用深度优先搜索(DFS)在无向图中检测一个循环的上限是O(|V|)吗?

1个回答

9
没有循环的图最多只有|V|-1条边(称为森林)。因此,如果DFS发现|V|条边或更多,则已经找到了一个循环并终止。运行时间因此受到O(|V|)的限制。

点赞 :) 一个没有环的图最多只有|V|-1条边。也许这就是你的意思,因为后面你说“如果DFS发现|V|条边或更多……” - Paul Hankin
@PaulHankin:谢谢,我没有注意到常数(问题是关于渐近的)。 :) - Yakov Galka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接