广度优先搜索(BFS)
BFS (广度优先搜索,
广度优先搜索)——一种图遍历方法,在简单算法和高级算法中都非常常用。广度优先搜索的工作原理是逐步遍历图形的各个级别,从源节点开始并逐渐远离它。动画中清楚地显示了这一点。
要编写最简单的 BFS ,您需要能够使用一种数据结构,该数据结构允许您从头到尾获取,并能够存储邻接表形式的图(即带有队列)。
 
算法的形式化描述
1) 将开始搜索的顶点编号放入最初为空的队列中。
2) 从队列的开头提取顶点 U 并将其标记为在单独的数组中使用。
3) 在队列的末尾,添加我们可以使用来自顶点U,的边到达 并且尚未标记的所有顶点。
4) 如果队列为空,则连通图的所有节点都扫描完毕,否则返回步骤2。
 
复杂度
由于算法在最坏情况下会访问图的所有节点,当将图存储为邻接表时, 算法的时间复杂度为 O(|V| + |E|) ,其中  V 是图顶点的集合,E 是边的集合。 换句话说,该算法在 number 的最坏情况下有效边数 + 顶点数.