
【计】 breadth-first
breadth; width
【医】 width
preference; priority; first; precedence; precession
【经】 priority
在计算机科学与算法设计领域,"宽度优先"(Breadth-First)是一种重要的遍历或搜索策略,其核心原则是优先处理当前层级的所有相邻节点,再进入下一层级。以下是基于权威来源的详细解释:
宽度优先指在遍历树(Tree)或图(Graph)结构时,从根节点(或起始节点)开始,按层级逐层向外扩展访问。具体表现为:
来源:《算法导论》(Thomas H. Cormen 等)
英文对应术语为"Breadth-First",其标准定义为:
"An algorithm that explores all neighbor nodes at the present depth prior to moving on to nodes at the next depth level."
(一种在进入下一深度层级前,优先探索当前深度所有相邻节点的算法。)
来源:IEEE Standard Glossary of Software Engineering Terminology
实现方式
使用队列(Queue) 数据结构:
关键特性
典型应用场景
来源:GeeksforGeeks "Breadth-First Traversal for a Graph"
特性 | 宽度优先(BFS) | 深度优先(DFS) |
---|---|---|
遍历顺序 | 层级优先(横向扩展) | 分支优先(纵向深入) |
数据结构 | 队列(FIFO) | 栈(LIFO) |
空间复杂度 | $O(b^d)$(b为分支因子) | $O(bm)$(m为最大深度) |
适用问题 | 最短路径、连通分量 | 拓扑排序、回溯问题 |
来源:Oxford Dictionary of Computer Science
宽度优先(Breadth-First,通常指宽度优先搜索,Breadth-First Search,简称BFS)是一种用于遍历或搜索图、树等数据结构的算法策略。其核心思想是按层次逐层扩展,先访问离起点最近的节点,再依次处理下一层节点。以下是详细解释:
特性 | BFS | DFS |
---|---|---|
数据结构 | 队列 | 栈 |
路径性质 | 最短路径(无权图) | 可能非最短 |
空间消耗 | 较高(需存每层节点) | 较低(存单条路径) |
适用场景 | 目标节点较浅或需最短路径 | 目标节点较深或需遍历所有可能 |
以树结构为例,BFS遍历顺序为:
根节点 → 所有子节点 → 子节点的子节点 → 依此类推。
例如,对二叉树:
A
/
B C
/
D E F
BFS输出顺序为:A → B → C → D → E → F。
宽度优先搜索通过逐层扩展确保找到最短路径,适合对路径长度敏感的场景,但需权衡其较高的内存消耗。在算法选择时,需根据问题需求(如解深度、空间限制)决定使用BFS还是DFS。
搬家被动防御反射表面波输送线传质单元高度垂直偏转电路电器外封胶短须蚋反曲酚磺酸铅工业分配者惯性集尘器吉布斯氏试验晶体管偏压技术策略可再定位性莱加尔反应邻咬合的六角英硫鸟苷硫酸厂灭菌射线米赛斯屈服准则取消种放隔离人格中减等时世界碳平衡停带滤波器铜氨液油分离器未活化态