什么是广度优先搜索
- 广度优先搜索是一种对
图
进行搜索的算法。 - 假设我们一开始位于某个顶点(即起点),此时并不知道图的整体结构,而我们的目的是从起点开始顺着边搜索,直到到达指定顶点(即终点)。在此过程中每走到一个顶点,就会判断一次它是否为终点。
广度优先搜索
会优先从离起点近的顶点开始搜- 其别名又叫
BFS
,属于一种盲目搜寻法
,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。 - 基本过程,
BFS
是从根节点开始,沿着树(图)
的宽度遍历树(图)的节点。 - 如果所有节点均被访问,则算法中止。一般用
队列
数据结构来辅助实现BFS 算法
。
案例
如下图,广度优先搜索
的路径为
A,B,C,D,E,F,H,I,J,K,G,L
JAVA实现
用 队列
总结
- 广度优先搜索比较简单