algorithm - DFS 和 BFS 可以互换吗?

标签 algorithm depth-first-search breadth-first-search

我知道 DFS 适用于某些问题,而 BFS 适用于其他一些问题,但如果某些问题可以使用 DFS 解决,那么它是否可以使用 BFS 解决(可能不太理想)(反之亦然)?有证据吗?谢谢!

最佳答案

没有。

最短路径是可以使用 BFS 轻松解决的问题的典型示例。但是对于 DFS,您要么必须接受无限循环的可能性,要么避免重新访问节点并且在许多情况下无法找到最短路径。

相反的例子更难找到。但例如 Hopcroft-Tarjan用于平面性测试的算法依赖于这样一个事实,即在 DFS 中,您知道到当前节点的整个路径的属性。而你在 BFS 中没有的上下文。

关于algorithm - DFS 和 BFS 可以互换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72682027/

相关文章:

algorithm - 为什么这个合并排序实现不起作用?

javascript - 使用深度优先搜索算法的无限循环错误

c - 开放迷宫 - 深度优先搜索

algorithm - 我怎样才能从线形成多边形

java - 我如何改变这个贪心算法来预测最全面的分数?

algorithm - A* 启发式 : Shortest path passing once in multiple points

binary-tree - 在内存有限的二叉树中找到第一个空值

algorithm - 双向搜索的终止条件

graph - 使用 BFS 求图树直径的中心?

c++ - BFS 迷宫帮助 C++