gpt4 book ai didi

algorithm - 线性时间深度优先搜索的时间复杂度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:02 24 4
gpt4 key购买 nike

我对以下算法的时间复杂度感到困惑,它是 O(V) 还是 O(V+E)?

DFS(G,s,t):


vis[s] = true
if s == t
vis[s] = false, return 1
cont = 0
for v is adj(s)
if vis[v] == false
cont = cont + DFS(G,s,t)
vis[s] = false
return cont

最佳答案

在研究图复杂性理论时,有时更容易想到“我处理每条边/顶点多少次”而不是这个循环运行多少次。这是因为图中的循环具有可变长度,并且随着循环的发生,事情变得一团糟。

最终,在 DFS 算法中,您将不得不检查每条边的另一端是什么,并决定是否访问该顶点。您将对每条边执行一次且仅执行一次。因此,您必须考虑每条边。

由于每个顶点也恰好被考虑(访问)一次,因此这会产生 O(V+E) 复杂度。

关于algorithm - 线性时间深度优先搜索的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56045993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com