dfs,bfs 一文搞懂深度优先搜索、广度优先搜索( 二 )


dfs,bfs 一文搞懂深度优先搜索、广度优先搜索

文章插图
 
总结与比较
上面说到dfs和bfs往往是在 寻路上的两个极端的表现 !当然在不同场景使用可能也有些不同 。
  • dfs可以运用在查找和爬虫中,如果爬虫的话那么更多是优先找到不同链接,可用于统计等 。而在查找中比如 迷宫类 可以利用dfs判断 是否存在路径,出路 等等 。
  • bfs也可以运用在算法和爬虫之中 。而bfs优先处理自己周围的资源 。所以在爬虫可以用于遍历网站,搜寻整个网站的价值信息等等,笔者以前用 爬虫+bfs实现过下载网站的模板 (17素材的网页模板) 。而在算法中, 在迷宫或者无权图中 , bfs可以找到最短路径  。
在上面可以看得出在邻接矩阵实现储存上 浪费很多空间 ,但有些情况使用二维数组很合适—— 迷宫类问题  。我们在面试学习,会经常遇到迷宫类需要bfs找最短路径,或者dfs查询是否存在 。或者双bfs又或者dfs+bfs等等解决具体问题 。




推荐阅读