DFS与BFS的运行时间

时间:2015-04-26 20:32:18

标签: runtime depth-first-search breadth-first-search

BFS的运行时间为O(V + E),DFS的运行时间为Ө(V + E)。由于DFS和BFS都访问每个顶点一次并且最多遍历所有边缘两次,因此两者的运行时间不应该是Ө(V + E)?为什么他们的跑步时间不同?它们在哪些情况下有所不同?

1 个答案:

答案 0 :(得分:0)

来自维基百科,

  

“DFS的时间和空间分析根据其不同而不同   应用领域。在理论计算机科学中,DFS通常是   用于遍历整个图形,并花费时间Θ(| V | + | E |)“

单词通常导致这只是因为语义。在无限记忆的世界中,你也可以通常使用BFS搜索整个图形,因此也有Ө(V + E)。

编辑:他们有不同运行时间的场景。

假设BFS访问的队列太大,它有额外的访问时间O(log(K + E))。那么BFS的运行时间将是O(V + E + log(V + E))。

虽然DFS将保持Θ(V + E),因为搜索是在低级缓存中。