广度优先算法(BFS)入門理解

本文介绍了广度优先搜索(BFS)的基本概念,并通过图解和实例详细解析了BFS的运行流程。包括从起点A到目标点K的BFS路径演示,以及如何使用BFS解决杭电oj 2717和NOI题库6264的问题。文章适合算法入门者,提供了解决BFS问题的基本思路和步骤。

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

简介

广度优先算法(BFS)和深度优先算法(DFS)是图这种数据结构最基础的算法,所以需要我们花心思去学习。能知道BFS和DFS这个名词就证明同学们已经在书上看到了他们的介绍。不过对于初入门的同学来说,书上的内容不免生涩难懂。这里就不重复介绍其概念,屁话不多说直接上图。

图解

在这里插入图片描述
在上图中,A为起始点,终点为K。A——>K需要走多少步?因为图相当简单,聪明的同学们一眼可以看出A——>K只需要三步,步骤为:A——>C——>G——>K。虽然这结论乍一看很正确,但是在BFS中的运行流程可不是如此。
接下来我们看一下由A作为起点,走至K,在BFS中的流程是怎么样的。
在这里插入图片描述
首先,获取A点所在的位置信息,然后将A放入队列,并记录A所在的轮数为0。

在这里插入图片描述
进入while循环,队列首A出列,然后判断出邻近A的元素,为BCDE。符合入队标准的元素进入队列(A就不符合入队标准,因为A已经遍历过),分别记录其所在的轮数1。
在这里插入图片描述
BCDE依次出列,然后判断其相邻的元素FGHI,将符合的元素放入队列,并记录其轮数为2。(注:每次出列依次,都是经过一次while循环,但是BC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值