DFS-深度优先搜索与BFS-广度优先搜索
Posted tang-tangt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DFS-深度优先搜索与BFS-广度优先搜索相关的知识,希望对你有一定的参考价值。
1.DFS
DFS是一个递归过程。(类似于二叉树的前序遍历)
参考:深度优先搜索(Depth-First-Search)精髓
2.BFS
可以理解为按层遍历,借助队列结构来实现。(类似于二叉树的层次遍历)
参考:[数据结构]广度优先搜索算法(Breadth-First-Search,BFS)
图的DFS与BFS
- 图的深度优先搜索算法和广度优先搜索算法在时间复杂度上是一样的。
- 深度优先更适合目标比较明确,以找到目标为目的的情况。
- 广度优先更适合在不断扩大遍历范围时找到相对最优解的情况。转自此文
两种算法的具体讲解可参考:
数据结构和算法总结(一):广度优先搜索BFS和深度优先搜索DFS
以上是关于DFS-深度优先搜索与BFS-广度优先搜索的主要内容,如果未能解决你的问题,请参考以下文章
深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现
什么时候使用深度优先搜索 (DFS) 与广度优先搜索 (BFS) 比较实用? [关闭]