【算法】什么是 DFS 与 BFS 及他们的区别
博主介绍✌全网粉丝24WCSDN博客专家、Java领域优质创作者掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌技术范围SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。感兴趣的可以先关注收藏起来在工作中、生活上等遇到相关问题都可以给我留言咨询希望帮助更多的人。技术扩展最近发现了一个特别好用的人工智能学习网站通俗易懂风趣幽默忍不住想分享一下给大家进入传送门https://www.captainbed.cn/no8g/。什么是 DFS 与 BFS 及他们的区别一、概念介绍二、DFS 深度优先搜索三、BFS 广度优先搜索四、核心区别对比表五、通俗比喻六、选型建议一、概念介绍DFS 和 BFSDFS深度优先搜索Depth‑First SearchBFS广度优先搜索Breadth‑First Search二者都是图 / 树的遍历算法用于访问图、树上所有节点。二、DFS 深度优先搜索思想一条路走到黑走不通再回头回溯优先往深处走直到不能继续再回退到上一个分叉走另一条分支。实现方式递归系统栈代码简洁手动栈 Stack避免递归栈溢出访问顺序尽可能往下再回溯伪代码递归 DFSdefdfs(node):标记node已访问for每个邻接节点next_node:if未访问:dfs(next_node)DFS 例子树A /\B C / DDFS 遍历A → B → D → C三、BFS 广度优先搜索思想一层一层向外扩散先访问离起点近的先访问起点的所有直接邻居再访问邻居的邻居一层一层遍历。实现方式队列 Queue先进先出特点按距离起点远近顺序访问第一次到达某节点就是最短路径无权图伪代码queue[start]标记start已访问whilequeue不为空:node出队for每个邻接节点next_node:if未访问:标记访问 入队上面同一棵树BFS 遍历A → B → C → D四、核心区别对比表对比项DFS 深度优先搜索BFS 广度优先搜索核心逻辑往深走走到底再回溯一层一层向外扩展数据结构栈 Stack递归本质也是栈队列 Queue内存特点深度大时栈开销大分支多内存小节点多的层队列会存大量节点深度大内存友好最短路径无权图❌ 不能直接得到最短路径✅ 第一次访问就是最短路径适合场景找全部解、迷宫回溯、连通分量、拓扑排序无权图最短路径、层级遍历、最短步数问题时间复杂度O(VE)O(VE)V 顶点数E 边数两者时间复杂度相同区别主要在空间与适用场景。五、通俗比喻DFS走迷宫碰到路口随便选一条一直往前撞墙就回退试另一条路。BFS洪水扩散起点是水源水一层一层向外漫离起点近的地方先被淹没。六、选型建议求最短步数 / 最短路径无权 → 选 BFS例迷宫最少步数、二叉树层序遍历枚举所有方案、回溯、全部路径 → 选 DFS例子集、全排列、找所有可行路径图很深但分支少DFS 省内存图很浅但每一层节点爆炸多BFS 会内存爆炸改用 DFS。注意事项DFS 递归实现时如果图深度非常大会栈溢出这时要用手动栈迭代版 DFS。好了今天分享到这里。希望你喜欢这次的探索之旅不要忘记 “点赞” 和 “关注” 哦我们下次见本文完结

相关新闻

考研数据结构编程:从零写代码的工程实现与调试技巧

考研数据结构编程:从零写代码的工程实现与调试技巧

1. 先搞清楚“从零写代码”到底要解决什么问题看到“考研数据结构编程题”和“从零写代码”,很多同学第一反应是找一堆算法题来刷。但如果你真这么干,大概率会卡在第一步:题目看懂了,也知道大概思路,但就是写不出能跑通…

2026/8/16 7:38:18 阅读更多 →
VSCode前端插件配置全攻略:从基础搭建到高效定制

VSCode前端插件配置全攻略:从基础搭建到高效定制

1. 项目概述:为什么前端开发者离不开VSCode插件?如果你是一名前端开发者,打开你的VSCode,侧边栏那个插件图标里,是不是已经塞满了各种奇奇怪怪的小玩意儿?从代码高亮到自动补全,从代码格式化到G…

2026/8/16 7:38:18 阅读更多 →
国内热门的造粒机厂家哪家好

国内热门的造粒机厂家哪家好

在塑料加工行业蓬勃发展的今天,造粒机作为不可或缺的设备,其性能和质量直接影响着生产效率和产品质量。对于众多创业者和采购商来说,选择一家靠谱的造粒机厂家至关重要。那么,国内热门的造粒机厂家哪家好呢?接下来&…

2026/8/16 7:38:18 阅读更多 →

最新新闻

论文AI率0%黑科技!降AI率网站留学生亲测:Turnitin查重秒变“人类原创“

论文AI率0%黑科技!降AI率网站留学生亲测:Turnitin查重秒变“人类原创“

写论文用AI确实省心又高效,尤其是面对海量资料和紧迫的截止日期时,简直就像开挂一样。但千万别高兴太早,现在不少高校对AI痕迹的检测比查重还严格,Turnitin一查,轻则被打回重写,重则直接挂科影响毕业。AI生…

2026/8/16 8:23:42 阅读更多 →
论文大纲逻辑理不清,有哪些专业的AI论文写作工具推荐?

论文大纲逻辑理不清,有哪些专业的AI论文写作工具推荐?

毕业季一到,不少同学卡在开题报告这第一关:选题定不下来、研究背景和意义分不清、文献综述无从下手、研究方法和技术路线逻辑混乱,对着空白文档熬上几周也写不出完整框架。尤其是零基础、在职读研、跨专业的学生,对高校开题规范一…

2026/8/16 8:23:42 阅读更多 →
深夜写手自救!亲测这6款AI写作辅助软件,从构思到降重全程逆袭

深夜写手自救!亲测这6款AI写作辅助软件,从构思到降重全程逆袭

从开题到降重,AI工具链10分钟搞定文献综述,知网查重率直降!解放双手专注核心论点,这才是学术价值的真正突破。 1.千笔 AI:开题报告 & 文献综述「闪电战专家」实测场景:经济学开题报告从空白到导师通过 …

2026/8/16 8:23:42 阅读更多 →
2026最新AI论文工具排行榜|双检不翻车!学生党闭眼入榜单✅

2026最新AI论文工具排行榜|双检不翻车!学生党闭眼入榜单✅

2026年高校论文审核全面收紧,重复率AIGC人工智能双检成为硬性标准!很多AI工具看似好用,实则AI痕迹爆表、文献造假、降重生硬、格式不规范,直接导致论文返修、延期答辩。本次排行榜不掺水、不恰饭,以「双检通过率、学生…

2026/8/16 8:23:42 阅读更多 →
从 0 构建 AI Workload Platform(三):单机可靠工作流内核如何设计

从 0 构建 AI Workload Platform(三):单机可靠工作流内核如何设计

摘要 我正在从零开发一个新项目:AI Workload Platform。它是一个面向 Agent(能够围绕目标调用模型、工具或外部服务的软件组件)与确定性程序任务(主要按照预先编写的固定规则执行的程序任务)的可靠运行时和调度平台&a…

2026/8/16 8:23:42 阅读更多 →
网络故障排查实战指南:从新手到高手的四步心法

网络故障排查实战指南:从新手到高手的四步心法

最近在帮一个刚入行的朋友排查网络问题,他对着设备日志和拓扑图,感觉每个灯都亮着,但业务就是不通。折腾了半天,最后发现是某个不起眼的交换机上,一个VLAN的接口模式配成了Access,而它本应是Trunk。问题解决…

2026/8/16 8:22:42 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →