深度优先(DFS)和广度优先(BFS)

深度优先(Depth-First-Search)和广度优先(Breadth-First-Search)是我们遍历图的两种方式,它们都属于穷举法,用来系统的遍历图中的所有顶点

关于如何再一个有向图/无向图中进行深度优先或者是广度优先,大家应该都清楚了

但为了真正认识到该算法的功效和深度,我们不应该根据图的图形,而是应该根据它的邻接矩阵或者邻接链表来跟踪算法的操作

可以用一张表来比较两者

项目 DFS BFS
数据结构 队列
顶点顺序的种类 两种顺序 一种顺序
变得种类(无向图) 树向边和回边 数向边和交叉边
应用 连通性,无环性,关节点 无环性,连通性,最少边路径
邻接矩阵的效率  V^2 V^2
邻接链表的效率 V+E V+E

注:V为图中顶点数量,E是边的数量

本文参考《introduction to the design and analysis of algorithms》

原文地址:https://www.cnblogs.com/QuixoteY/p/10237641.html