【发布时间】:2013-10-03 03:51:58
【问题描述】:
我正在尝试在 Java 中实现 BFS 和 DFS 作为通用算法。我正在编写一个方法getComplexity(),它将算法的最坏情况复杂度作为字符串返回。在 DFS(和 BFS)中,图中的每个节点只能被访问一次。在最坏的情况下,每个节点只被访问一次。因此,为什么这些算法的复杂度是 O(V+E) 而不是 O(V)?这里 V 是节点(或顶点)的数量,E 是边的数量。
【问题讨论】:
-
每个节点被访问一次,每条边被遍历一次。因此 O(V+E)。
-
这对我来说似乎不是重复的。您发布的问题中的 OP 理解它为什么是(v1 + e1 + v2 + e2 ...)。但是在这里,OP 在问为什么这是真的