什么是广度优先搜索有用?

Jas*_*ker 24 algorithm search graph-theory breadth-first-search depth-first-search

通常当我不得不走图表时,由于空间复杂度较低,我总是使用深度优先搜索.我诚实从未见过呼吁广度优先搜索,但我的经验的情况相当有限的.

什么时候使用广度优先搜索是有意义的?

更新:我想我的答案在这里表示我已经使用了BFS(因为我觉得这是一个DFS)的情况.我仍然很想知道,为什么它在这种情况下很有用.

sep*_*p2k 13

当您想要通过遍历尽可能少的边来到达节点时,即当您想要在未加权图中找到最短路径时.

此外,当例如每个节点仅具有一个子节点时,即当图形深但不是非常宽时,深度优先搜索的空间复杂度可以高于广度优先搜索的空间复杂度.


zig*_*tar 6

如果您的搜索域是无限的,则深度优先搜索不保证终止/找到解决方案,即使存在有限解决方案.

您还可以看到更精细的算法,如A*,作为广度优先搜索的特殊子类型.

通常,bfs既是最优的又是完整的(具有有限的分支因子),而dfs则不是.