BFS的运行时间为O(V + E),DFS的运行时间为Ө(V + E)。由于DFS和BFS都访问每个顶点一次并且最多遍历所有边缘两次,因此两者的运行时间不应该是Ө(V + E)?为什么他们的跑步时间不同?它们在哪些情况下有所不同?
答案 0 :(得分:0)
来自维基百科,
“DFS的时间和空间分析根据其不同而不同 应用领域。在理论计算机科学中,DFS通常是 用于遍历整个图形,并花费时间Θ(| V | + | E |)“
单词通常导致这只是因为语义。在无限记忆的世界中,你也可以通常使用BFS搜索整个图形,因此也有Ө(V + E)。
编辑:他们有不同运行时间的场景。
假设BFS访问的队列太大,它有额外的访问时间O(log(K + E))。那么BFS的运行时间将是O(V + E + log(V + E))。
虽然DFS将保持Θ(V + E),因为搜索是在低级缓存中。