当前位置: 首页 > news >正文

关于广度优先搜索(BFS)的笔记

【基本概念】

广度优先搜索(\(BFS\))是一种图遍历算法,其核心思想是从起始节点开始,逐层地扩展搜索,直到找到目标节点或遍历完整个图。\(BFS\)按照节点的距离从起始节点开始,先访问相邻节点,然后逐层扩展到更远的节点。

\(BFS\)通常使用队列来保存待访问的节点,初始时将起始节点加入队列。然后,从队列中取出首个节点,并访问它。如果该节点是目标节点,则搜索完成。否则,将与该节点直接相邻的未访问节点加入队列,并标记它们为已访问。接下来继续从队列中取出下一个节点,直到队列为空或找到目标节点为止。

\(BFS\)的核心特点是保证找到的路径是最短路径,这是由于\(BFS\)按层次扩展搜索的方式决定的。首次找到目标节点时,即为最短路径,后续扩展的路径长度只会增加。

【基本框架】

int bfs(/*初始状态*/) {/*初始状态入队*//*标记初始状态*/while(/*队列不为空*/) {/*获取队头状态*//*队头状态出队*/if(/*判断队头状态是否目标状态*/) {/*输出结果*/return 0;}for(/*枚举决策*/) {/*以队头状态为基准获得新的状态*/if(/*状态合法性判断*/) {/*标记状态*//*记录决策*//*新状态入队*/}}}
}

【应用题目】

  1. 最短路径问题:广搜可以用来寻找从一个顶点到另一个顶点的最短路径,比如在无权图中寻找两点之间的最短路径。

  2. 连通性问题:广搜可以用来判断两个顶点之间是否存在路径,即判断图中的连通性。

  3. 图的遍历:广搜可以用来遍历整个图的节点,例如查找一个图中所有与某个顶点相邻的节点。

  4. 迷宫问题:广搜可以用来解决迷宫问题,即在一个迷宫中找到从起点到终点的路径。

http://www.njgz.com.cn/news/612.html

相关文章:

  • swagger2访问时报StackOverflow错误
  • 定位堆相关问题:OllyDbg2的off-by-one漏洞分析
  • 用户可控的统一风格迁移框架 - 亚马逊科学研究院
  • ARM简介 - LI,Yi
  • 板刷 ABC 计划
  • 题解:P4191 [CTSC2010] 性能优化
  • Java“class file contains wrong class”解决
  • 电脑中右键打开方式中出现已经卸载的应用程序(如,Dreamweaver)
  • 将 Windows 系统显示时间的精度修改为秒
  • 日记
  • 每日论文7.27——基于嵌入式GPU的指纹汗孔识别软件并行设计
  • XXL-SSO v1.2.0 发布|单点登录框架
  • 一、Web端UI自动化测试--环境搭建
  • 水果机,夺宝动画实现
  • DMP学习路线之进阶
  • 关于逆元目前的两种求法以及证明
  • [Record] 计数选讲 20250727
  • 7/27
  • 大数据之路:阿里巴巴大数据实践——大数据领域建模综述
  • POLIR-Laws-民法典: 第三编 合同 : 第二分编 典型合同: 21.保管、22.仓储、23.委托、24.物业服务、25.行纪、26.中介
  • 记录个IAR程序下载后硬件复位不运行,必须断电复位才运行的问题
  • 操作系统 - 浪矢
  • Qt布局管理
  • 最小树形图:朱刘算法
  • 基于YOLOv8的边坡排水沟堵塞检测与识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
  • POLIR-Laws-民法典: 第三编 合同 : 第二分编 典型合同: 20.技术合同 : 1)一般规定、2)技术开发、3)技术转让 和 技术许可、4)技术咨询 和 技术服务
  • hybrid口
  • 利用Transformer模型提升产品检索效果
  • 第二十天
  • 《恶意代码实战分析》笔记