【计蒜客】BFS-----广度优先搜索

本文介绍了BFS(广度优先搜索)的基本概念,它与深度优先搜索的区别在于先搜索距离起点近的节点。BFS通过队列进行实现,从起点开始逐层扩展。算法流程包括将起点入队,然后不断取出队首节点,访问其未被访问过的相邻节点并入队。BFS在解决图论问题和最短路径问题时非常有用。提供的例子展示了BFS与DFS的不同搜索顺序。掌握BFS的实现方式和应用有助于解决相关算法题。
摘要由CSDN通过智能技术生成

什么是BFS

广度优先搜索,又称宽度优先搜索,简称bfs,我们以后都会用bfs来表示广度优先搜索。与深度优先搜索不同的是,广度优先搜索会先将与起始点距离较近的点搜索完毕,再继续搜索较远的点,而深搜却是沿着一个分支搜到最后。

bfs从起点开始,优先搜索离起点最近的点,然后由这个最近的点扩展其他稍近的点,这样- -层一 层的扩 展,就像水波扩散一
样。

如图所示:
在这里插入图片描述上图用DFS得到的序列为:A B E F C D G
上图用BFS得到的序列为:A B C D E F G

可见,再BFS中,搜索主要是按照分层的,分别从第一层,第二层,第三层往下搜索。

BFS如何实现

bfs借助队列来实现:

  1. 初始时把起点放在队列中,并标记起点访问
  2. 如果队列不为空,从队列中取出一个元素x,否则算法结束
  3. 访问和x相连的所有点v,如果v没有被访问过,把v入队,并标记已经访问
  4. 重复步骤2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值