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

浅谈迷宫类问题中的BFS和DFS

最近刷了很多迷宫类问题的算法,这类题目普遍都是使用DFS和BFS来解决,那么DFS和BFS间到底有什么区别呢?

DFS,深度优先遍历,在整个函数递归的过程中,会找到所有可能的路径。比如说,一个迷宫问题有一些出口,DFS会将可到达这些出口的所有路径都遍历一遍,一个出口可能会对应多条路径。
所以,如果要统计整个迷宫中有多少条可行的不重复的路径,那么使用DFS是可行的。

BFS,广度优先遍历,是通过队列+循环实现的,它并不会找到所有可行的路径,实际上,对于每一个出口,如果存在可行路径,那么BFS最终找到的是到达这个出口的最短路径。因此,对于每一个存在可行路径的出口而言,BFS只会记录到这个出口的最短的那条路径。

所以,如果要统计整个迷宫中有几个出口或要求最短路径的话,使用BFS是可行的。

另外,BFS和DFS虽然都需要剪枝,但是DFS是需要回溯的,但是BFS不需要。

http://www.dtcms.com/a/198275.html

相关文章:

  • ctf 基础
  • [ctfshow web入门] web119
  • 软件设计师CISC与RISC考点分析——求三连
  • 算法加训之最短路 上(dijkstra算法)
  • <前端小白> 前端网页知识点总结
  • 10.13 LangChain工具调用实战:@tool装饰器+小样本提示,日处理10w+调用秘籍
  • 3Dmax中用RayFire实现破碎动画效果
  • 机器学习(13)——LGBM(2)
  • 用Colab启动Streamlit应用
  • 机器学习 Day18 Support Vector Machine ——最优美的机器学习算法
  • 板凳-------Mysql cookbook学习 (三)
  • c/c++的opencv直方图初识
  • ADB基本操作和命令
  • 深入理解 OpenCV 的 DNN 模块:从基础到实践
  • 顺 序 表:数 据 存 储 的 “ 有 序 阵 地 ”
  • 计算机网络概要
  • 牛客网NC276055:三根木棒能否组成三角形问题详解(ACM中的A题)
  • 【从基础到模型网络】深度学习-语义分割-ROI
  • OceanBase数据库-租户
  • 小米汽车:新能源赛道的破局者与变革者
  • UE5无法编译问题解决
  • 抖音视频下载工具 v1.1 自用分享
  • 【Python 算法零基础 4.排序 ① 选择排序】
  • 为何选择Python:全面解析其优势与发展前景
  • Linux下载国外软件镜像的加速方法(以下载Python-3.8.0.tgz为例)
  • Java可变参数与Collections工具类详解
  • 系统架构设计师考前冲刺笔记-第1章-系统工程与信息系统基础
  • 深入解析Java事件监听机制与应用
  • GOP模式调节画面质量讲解
  • 【ROS2】 核心概念6——通信接口语法(Interfaces)