【问题标题】:Why is the time complexity of DFS to detect a cycle in an undirected graph O(|V|) and not O(|V| + |E|)?为什么 DFS 在无向图中检测循环的时间复杂度是 O(|V|) 而不是 O(|V| + |E|)?
【发布时间】:2019-04-21 03:42:18
【问题描述】:

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

【问题讨论】:

    标签: algorithm graph depth-first-search


    【解决方案1】:

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

    【讨论】:

    • 赞成 :) 没有循环的图最多有 |V|-1 条边。也许这就是您的意思,因为稍后您会说“如果 DFS 发现 |V| 边缘或更多...”
    • @PaulHankin:谢谢,我没有注意常量(问题是关于渐近的)。 :)
    猜你喜欢
    • 2015-01-01
    • 2012-07-13
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多