1.DFS
DFS是一个递归过程。(类似于二叉树的前序遍历)
参考:深度优先搜索(Depth-First-Search)精髓
2.BFS
可以理解为按层遍历,借助队列结构来实现。(类似于二叉树的层次遍历)
参考:[数据结构]广度优先搜索算法(Breadth-First-Search,BFS)
图的DFS与BFS
- 图的深度优先搜索算法和广度优先搜索算法在时间复杂度上是一样的。
- 深度优先更适合目标比较明确,以找到目标为目的的情况。
- 广度优先更适合在不断扩大遍历范围时找到相对最优解的情况。转自此文
两种算法的具体讲解可参考:
数据结构和算法总结(一):广度优先搜索BFS和深度优先搜索DFS