IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 广度优先遍历(Breadth First Search) -> 正文阅读

[数据结构与算法]广度优先遍历(Breadth First Search)

广度优先遍历,也称广度优先查找、广度优先搜索等。

基本思想

假设初始状态时图中所有顶点都未曾被访问,则广度优先遍历算法从图中某个顶点(任一顶点)出发,访问此顶点并依次访问该顶点的各个未曾访问过的邻接点。然后,分别从这些邻接点出发依次访问他们的临邻接点,并使"先被访问的顶点的邻接点"先于"后被访问的顶点的邻接点"被访问,直至图中所有已被访问的顶点的邻接点都被访问到。若此时图中尚有顶点未被访问,则另选图中一个未被访问的顶点作为起始点,重复上述过程,直至图中所有顶点都被访问到为止。
换句话说,广度优先遍历的过程是以任一顶点开始,由近及远,依次访问和该顶点路径相通且路径长度为1,2,3,…的顶点。

伪代码实现

假设图G(V, E)表示要遍历的图,广度优先遍历的伪代码实现如下:

使用邻接矩阵或邻接表表示图G(V, E)
使用visited[VertexCount]数组记录顶点是否已被访问,其中true表示已访问,false表示未访问
for i=0;i<VertexCount;i++ then
    visited[i] = false
for each vertex v in V then
    if(v is not visited) then
        bfs(v)
bfs(v)
    visited[v] = true
    add v to Queue
    while the Queue is not empty then
        for(each vertex w in v's adjacent V') then
            if(w is not visited) then
                visited[v] = true 
                add w to the Queue
        remove the first vertex from the Queue

广度优先遍历的效率和深度优先遍历的效率是相同的。对于使用二维数组表示的邻接矩阵时,查找每个顶点的邻接点所需的时间为 O ( ∣ V ∣ 2 ) O(|V|^2) O(V2)。而当使用邻接表时,由于临邻接点可以使用链表存储,所以查找每个顶点的邻接点所需的时间为 O ( ∣ V ∣ + ∣ E ∣ ) O(|V| + |E|) O(V+E)

参考

《数据结构 严蔚敏 吴伟民 著
《算法设计与分析基础》 第三版 Anany Levitin 著 潘彦 译
https://blog.csdn.net/qq_40310148/article/details/106786652 图的深度优先遍历(DFS)
https://leetcode-cn.com/circle/article/YLb5l4/ 图文详解 BFS, DFS
https://blog.csdn.net/qq_41170102/article/details/105043114 leetcode高频题笔记之DFS和BFS

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-01 17:57:48  更:2021-12-01 17:59:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:51:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码