广度优先或深度优先搜索

new*_*own 7 c++ algorithm breadth-first-search depth-first-search

我知道这个算法是如何工作的,但是不能决定何时使用哪种算法?

是否有一些指导方针,哪一个比其他或任何考虑更好?

非常感谢.

Mar*_*ers 17

如果您想找到步骤最短的解决方案,或者您的树有无限高度(或非常大),则应首先使用宽度.

如果你有一个有限的树,并希望使用最小的内存量遍历所有可能的解决方案,那么你应该首先使用深度.

如果您正在寻找最佳的国际象棋移动,您可以使用迭代加深,这是两者的组合.

IDDFS结合了深度优先搜索的空间效率和广度优先搜索的完整性(当分支因子是有限的时).