BFS(广度优先搜索)是一种图遍历算法,使用**队列**作为核心数据结构,遵循“先入先出”(FIFO)原则

发布时间:2026/11/4 2:47:57

BFS(广度优先搜索)是一种图遍历算法,使用**队列**作为核心数据结构,遵循“先入先出”(FIFO)原则 BFS广度优先搜索是一种图遍历算法使用队列作为核心数据结构遵循“先入先出”FIFO原则。其典型应用场景包括在无权图中求解单源最短路径即边数最少的路径因为BFS按层扩展首次到达某节点时即为最短距离二叉树或图的层次遍历逐层访问从根/起点开始一层一层向外扩散还可用于判断图的连通性、求解最小操作步数问题如迷宫最短出路、单词接龙等。实现要点初始化队列将起点入队并标记已访问循环出队访问其所有未访问邻接点入队并标记通常配合visited集合/数组避免重复访问若需记录路径或距离可额外维护distance[]或parent[]数组。fromcollectionsimportdequedefbfs(graph,start):visitedset()queuedeque([start])visited.add(start)distance{start:0}whilequeue:nodequeue.popleft()forneighboringraph.get(node,[]):ifneighbornotinvisited:visited.add(neighbor)queue.append(neighbor)distance[neighbor]distance[node]1returndistanceBFS广度优先搜索与DFS深度优先搜索在时间复杂度和空间复杂度上的异同如下✅相同点时间复杂度均为 O(V E)V 为顶点数E 为边数因为两者在最坏情况下都需要访问图中所有顶点和边邻接表表示下若用邻接矩阵存储时间复杂度均为 O(V²)因需检查每对顶点是否连通。❌不同点关键差异在于空间复杂度及实际行为维度BFSDFS辅助数据结构队列FIFO栈递归调用栈 或 显式栈空间复杂度O(W)W 为图的最大层宽即某一层最多节点数→ 最坏情况如星形图或完全图可达 O(V)O(H)H 为图的最大搜索深度即最长路径长度→ 最坏情况如链状图可达 O(V)但实际常更省空间尤其稀疏图/树典型空间表现在宽而浅的图中空间开销大如社交网络“六度人脉”早期层节点爆炸在深而窄的图中空间开销大如单链、树高较大时递归栈深 补充说明DFS 递归实现的空间复杂度包含函数调用栈深度易受栈溢出影响需注意语言栈限制迭代DFS可显式控制栈但逻辑稍复杂。BFS 的队列在层次遍历时天然支持“按层处理”便于实现最短路径、最小步数等DFS 更适合回溯、拓扑排序、连通分量Tarjan、路径存在性判断等。
延伸阅读

更多相关文章

2026/11/1 16:28:38

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地

语音对话前端全链路:WebRTC 采集、流式 ASR 与 TTS 的工程落地 一、边说边听的难题:语音 AI 助手的实时性与打断困境 去年我们给一个车载语音助手做前端,验收时产品提了一条:"用户说话中途改主意,要能立刻打断 AI…

2026/10/26 11:34:11

投票工具操作便捷度实测指南|2026主流平台新手创建步骤对比

多数线上投票活动落地难点,不在于功能覆盖度,而在于平台操作门槛过高。注册流程繁琐、设置选项冗余、功能入口隐蔽、发布流程复杂,都会增加活动筹备成本,尤其影响新手用户的使用效率。2026年主流投票工具均以低门槛、轻量化为迭代…

2026/11/4 2:43:44

K12作业系统为何选择ASP:老旧环境下的稳定交付方案

简介:本资源是一套基于ASPAccess开发的‘网上作业提交系统’教学实践项目,面向K12教育信息化从业者、高校教育技术专业学生及Web初学者,聚焦解决网络课程中作业分发、提交、管理与学习导航等实际问题。系统实现了模块导航、知识点检索导航、知…

2026/11/4 2:43:44

PHPCMS V9 UTF8部署与模板开发实战指南

简介:PHPCMS V9 UTF8是一款面向中初级PHP开发者与网站运维人员的开源内容管理系统,专为构建多语言、高兼容性的企业官网、资讯门户或社区型网站提供开箱即用的解决方案。资源包为完整版安装程序(ZIP格式),大小8.39MB&a…

2026/11/4 2:43:44

ASP+SQL Server进销存系统实战:传统Web应用的事务与状态管理

简介:这是一套基于ASPMSSQL开发的多用户网络进销存管理系统源码,面向中小企业信息化建设者、ASP初学者及仓库管理软件二次开发者,解决传统手工记账效率低、数据分散、权限管控弱等痛点。资源包为RAR格式,大小3.43MB,虽…

2026/11/4 2:43:44

Unity WebGL 中文输入法候选框跟随与全屏兼容实战

简介:该资源面向在 Unity WebGL 项目中需要处理中文输入与输入法定位的开发者,重点解决浏览器环境下中文输入法无法正常唤起、输入框与光标位置错位,以及全屏切换后输入法窗口定位失效等问题,适合具备一定 Unity 与 JavaScript 交…

2026/11/4 2:43:44

Icepak热仿真入门:七步流程与新手避坑指南

简介:这份PDF面向热仿方向初学者与工程技术人员,系统梳理Icepak热流体仿真的完整操作流程,帮助读者建立从建模到结果分析的规范认知。内容围绕七个环节展开:模型建立与CAD导入、边界条件设置、网格划分、求解器选择、物理模型设定…

2026/11/4 2:38:44

实用工具分享,网盘下载

80款受欢迎的软件 https://pan.quark.cn/s/41ef68a54757 Y2A-Auto实用的搬运工具 https://pan.quark.cn/s/0217d14c4ead

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑