广度优先搜索

广度优先搜索(Breadth-First Search, BFS)是一种基于队列结构的搜索策略。

基本思想

从起始状态出发,逐层向外扩展,先探索所有距离当前状态为 1 的状态,再探索距离为 2 的状态,依此类推。

数据结构

使用队列(Queue)来存储待探索的节点:

  • 先入队的节点先被扩展
  • 同一层的节点按顺序探索

特点

  • 保证找到最短路径:在无权图中,BFS 找到的第一个解一定是最优解
  • 空间开销较大:需要存储当前层的所有节点
  • 适用最少步骤问题:如迷宫最短路径、八数码问题等

应用场景

  • 最短路径搜索(无权图)
  • 层次遍历
  • 连通分量检测

链接到