广搜和深搜

Posted lbssxz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了广搜和深搜相关的知识,希望对你有一定的参考价值。

深度优先搜索:

dfs,运用递归函数,通过栈的结构进行搜索。

模板:

·dfs(状态) 
–if 状态 是 目标状态then
·dosomething
–else
·for 每个新状态
–if 新状态合法
»dfs(新状态)
·主程序:
·dfs(初始状态)

广度优先搜索:

bfs,运用递归函数,通过队列的方式搜索。

 

dfs就是对于某一个搜索树,通过一定的顺序把每一个枝上的子树全都遍历一遍。。也就类似于从起点出发,先把一个方向的点都遍历完才会改变方向......“不撞南墙不回头”

bfs是遍历某一深度,通过队列的方式存起来,边push边pop,知道队列为空才遍历完。bfs相对于dfs来说运用空间更多。DFS是空间效率高,DFS不需要保存搜索过程中的状态,而BFS在搜索过程中需要保存搜索过的状态,而且一般情况需要一个队列来记录。

 

以上是关于广搜和深搜的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 深搜广搜

7.23 深搜广搜

宽搜和广搜

树的深搜和广搜

深搜和广搜的原理及优缺点

4/6 深搜广搜专题+二分答案+单调队列