广度优先搜索
广度优先搜索是一种分层的查找过程,每向前一层可能
会访问一批顶点,不像深度优先搜索有回溯的过程。
同时与深搜用栈来维护不同,广搜一般是用先进先出队
列来进行维护的。
实际上我们从初始状态开始,搜索第
k
层的意义就是,搜
索需要
k
步才能到达的状态。
广度优先搜索
——
具体操作、特点
具体操作:
它是先将起始状态加入队列,然后每次从队列中取出
一个状态,将其后继状态加入队列,后继状态指的是
由当前状态一步操作可以到达的状态,直到所有状态
均被访问为止。
特点:
1.
它并不考虑结果的可能位置,而是彻底地搜索所有
状态,所以很少有基于
BFS
的启发式算法,也很少
对
BFS
进行剪枝。
2.
相对于
DFS
,
BFS
更加难于保存当前节点的状态
,所以
BFS
在爆搜中的应用较少。
3.
在某一层还没有搜索完时,是不会进入下一层的,