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) 比较实用? [关闭]

Python算法-深度优先搜索&广度优先搜索(DFS&BFS)

深度优先dfs与广度bfs优先搜索总结+例题

深度优先搜索(DFS)与广度优先搜索(BFS)

算法-03 | 深度优先DFS| 广度优先BFS