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

Algorithm 为什么DFS在无向图中检测循环的时间复杂度是O(| V |),而不是O(|V |+;| E |)?,algorithm,graph,depth-first-search,Algorithm,Graph,Depth First Search,有谁能详细解释一下,为什么以及如何在无向图中检测循环的DFS上界是O(| V |)?一个没有循环的图最多有| V |-1条边(它是一个林)。因此,如果DFS发现| V |边或更多边,则它已经找到一个循环并终止。因此,运行时以O(|V |)为界。Upvoted:)没有循环的图最多有| V |-1条边。也许这就是你的意思,因为后来你说“如果DFS发现| V |边或更多…”保尔汉金:谢谢,我没有注意常数(问题是关于渐近的)。:)

有谁能详细解释一下,为什么以及如何在无向图中检测循环的DFS上界是O(| V |)?

一个没有循环的图最多有| V |-1条边(它是一个)。因此,如果DFS发现| V |边或更多边,则它已经找到一个循环并终止。因此,运行时以O(|V |)为界。

Upvoted:)没有循环的图最多有| V |-1条边。也许这就是你的意思,因为后来你说“如果DFS发现| V |边或更多…”保尔汉金:谢谢,我没有注意常数(问题是关于渐近的)。:)