广度优先搜索 BFS

本文详细介绍了BFS(广度优先搜索)算法,包括在树和图中的应用,以及如何找到最短路径。BFS适用于寻找起点到终点的最短合法路径,每个节点都是通过最短路径访问的。文章还讨论了BFS与其他搜索算法如DFS的对比,并提供了多个实例,如员工重要性、扫雷游戏和岛屿数量等问题的解决方案。此外,还深入探讨了双端队列BFS、优先队列BFS、双向BFS以及多源BFS的应用场景和优化策略,如0-1 BFS和拓扑排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、队列 BFS

BFS 全称是 Breadth First Search,中文名是宽度优先搜索,也叫 广度优先搜索
Tree 的 BFS,要把 root 结点先入队,然后再一层一层的遍历。
图的 BFS,从源点出发,一圈一圈的访问结点。

DFS(深度优先搜索)和 BFS(广度优先搜索)

在这里插入图片描述
BFS 算法找到的路径是从起点开始的 最短 合法路径。即这条路径所包含的边数最小。
在 BFS 结束时,每个节点都是通过从起点到该点的最短路径 访问的。

图上火苗传播的过程:最开始只有起点着火了,在每一时刻,有火的节点都向它相邻的所有节点传播火苗。

void bfs() {
   
   
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值