📚 广度优先搜索算法原理
💡 什么是BFS?
广度优先搜索(Breadth-First Search, BFS)是一种用于图和树数据结构的遍历算法。它从根节点开始,逐层遍历所有相邻节点,直到找到目标节点或遍历完所有节点。
🎯 核心思想
BFS使用队列(Queue)数据结构来实现"先入先出"(FIFO)的遍历顺序。算法会优先访问距离起始节点最近的节点,再逐步扩展到更远的节点。
📝 算法步骤
- 将起始节点加入队列,并标记为已访问
- 当队列不为空时:
- 从队列头部取出一个节点
- 访问该节点的所有未访问邻居节点
- 将这些邻居节点加入队列,并标记为已访问
- 重复步骤2直到队列为空或找到目标节点
⚡ 特性与复杂度
- ✅ 可以找到从起始节点到目标节点的最短路径
- ⏱️ 时间复杂度:O(V + E),其中V是节点数,E是边数
- 💾 空间复杂度:O(V),最坏情况下需要存储所有节点
🌟 典型应用场景
- 🗺️ 最短路径查找(如地图导航)
- 🌐 网络拓扑发现
- ♟️ 棋盘游戏AI走法生成
- 👥 社交网络好友推荐
- 🦠 病毒传播模拟