DFS & BFS ----搜索思想初步

DFS & BFS

写一下个人对二者的理解

什么是DFS & BFS


DFS(Deep First Search)深度优先搜索

BFS(Breath First Search)广度优先搜索


DFS(Deep First Search)

个人认为DFS主要在于试错,回溯。通过不断地试错并回溯搜索到路径。


BFS(Breath First Search)

BFS则不同于DFS,DFS的方法是先一条路走到底,错误则回溯进行重新选择,而BFS面对不同选择时则是把所有选择记录下来,然后执行一个选择并记录结果,然后倒回进行重新选择,这也是其被称为Breath的原因。也就是说BFS是逐步求解,反复进入与退出。


总结

DFS中关键点是递归以及回溯,BFS中关键点则是状态的选取和标记

二者都是使用的穷举法

数据结构的运用

DFS用递归的形式,用到了栈结构,先进后出(FILO)
BFS选取状态用队列的形式,先进先出(FIFO)

DFS更适用于目标明确的搜索
BFS则更适用于大范围的搜索

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2019-2021 星界棱镜子
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信