可能是我语文不好,读了好久才读懂原文,so,改了几个字以及标点,变得更好懂了= =

1.BFS是用来搜索最短径路的解是比较合适的,比如求最少步数的解,最少交换次数的解,因为BFS搜索过程中遇到的解一定是离根最近的,所以遇到一个解,一定就是最优解,此时搜索算法可以终止。这个时候不适宜使用DFS,因为DFS搜索到的解不一定是离根最近的,只有全局搜索完毕,才能从所有解中找出离根的最近的解。(当然这个DFS的不足,可以使用迭代加深搜索ID-DFS去弥补)
2.空间优劣上,DFS是有优势的,DFS不需要保存搜索过程中的状态,而BFS在搜索过程中需要保存搜索过的状态,而且一般情况需要一个队列来记录。
3.DFS适合搜索全部的解,而正因为要搜索全部的解,那么BFS搜索过程中,遇到离根最近的解,并没有什么用,也必须遍历完整棵搜索树;
DFS搜索会搜索全部,但是相比之下 DFS不用记录过多信息,所以搜素全部解的问题,DFS显然更加合适。

如何选择bfs和dfs相关推荐

  1. 数据结构与算法学习⑤(BFS和DFS 贪心算法 二分查找)

    数据结构与算法学习⑤ 数据结构与算法学习⑤ 1.BFS和DFS 1.1.深度优先搜索算法 1.2.广度优先搜索算法 面试实战 102. 二叉树的层序遍历 104. 二叉树的最大深度 515. 在每个树 ...

  2. 分别用BFS和DFS求给定的矩阵中“块”的个数

    目录 背景介绍 BFS实现 基本思想 获取相邻位置元素技巧 BFS函数 DFS实现 基本思想 DFS函数 完整代码 背景介绍 背景 给出一个mxn的矩阵,矩阵中的元素为0或1.称位置(x,y)与其上下 ...

  3. BFS和DFS优先搜索算法

    4.教你通透彻底理解:BFS和DFS优先搜索算法 作者:July  二零一一年一月一日 --------------------------------- 本人参考:算法导论  本人声明:个人原创,转 ...

  4. 利用BFS和DFS解决 LeetCode 130: Surrounded Regions

    问题来源 此题来源于LEETCODE,具体问题详见下面的链接 https://leetcode.com/problems/surrounded-regions/description/ 问题简述 给定 ...

  5. 分享两个常见的搜索算法:BFS和DFS

    本文分享自华为云社区<BFS和DFS算法初探>,作者: ayin. 本次分享两个常见的搜索算法 1.BFS 即广度优先搜索 2.DFS 即深度优先搜索 岛屿数量 给定一个由 '1'(陆地) ...

  6. 【恋上数据结构】图代码实现、BFS、DFS、拓扑排序

    图代码实现 图的基础代码 顶点Vertex 边Edge 添加边addEdge 删除边removeEdge 删除点removeVertex 完整源码 图的遍历 广度优先搜索(Breadth First ...

  7. 如何通透理解:BFS和DFS优先搜索算法(23年修订版)

    前言 本文最早写于二零一一年一月一日,十余年过去,如今再看,之前写的确实一言难尽(包括评论区也有不少朋友指出文章质量.文章排版都有待提高),故重写本文 第一部分 什么是BFS与DFS 1.1 什么是B ...

  8. BFS和DFS算法原理(通俗易懂版)

    DFS 算法 思想:一直往深处走,直到找到解或者走不下去为止 BFS算法 DFS:使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测. BFS:使用 ...

  9. (五)算法与数据结构 | BFS和DFS

    文章目录 0. 简介 1. 广度优先搜索 2. 深度优先搜索 3. 总结 0. 简介 广度优先搜索(BreadthFirstSearch,BFS{\rm Breadth\ First\ Search, ...

最新文章

  1. Python 开发工具链全解
  2. 【机器学习】使用MLflow管理机器学习模型版本
  3. GDCM:VolumeSorter的测试程序
  4. C# 之 static的用法详解
  5. 着墨中文lisp登入_Lisp的本质 - climbdream的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. linux查看native进程,Android 分析应用程序占用native内存
  7. php 获取 参数名和参数值,如何快速的获得url地址中参数名和参数值(在看PHP手册的时候无意间看见这两个函数,猜想能不能搭配使用。)...
  8. python爬虫学习之使用BeautifulSoup库爬取开奖网站信息-模块化
  9. Cannot change version of project facet Dynamic Web Module to 3.0
  10. WPF设计の画刷(Brush)
  11. Centos7安装Docker-1.9.1
  12. c++ 调用批处理 bat 清理浏览器缓存。
  13. bugku 旋转跳跃
  14. 饥荒控制台输入没用_《饥荒》控制台秘籍使用方法
  15. python 获取网页视频
  16. win7 最常用的快捷键 ( 完全可以使用键盘来操作)
  17. 如何写出健壮和优雅的代码?
  18. 《DRM 专栏》| 彻底入门 DRM 驱动
  19. Nginx学习笔记02——安装部署Nginx
  20. 机器人运动估计——IMU运动方程与ESKF原理介绍(下)

热门文章

  1. ActiveMq笔记3-AMQ高可用性理论
  2. tomcat安全认证
  3. memcache 获取key的方法,查询session存储
  4. easyui layout 收缩的bug
  5. PAT乙级(1034 有理数四则运算)
  6. 复习:线性表——顺序表
  7. 统计list里面相同元素个数_Array篇easy难度之求相同元素个数
  8. ajax异步注册代码,基于AJAX用户注册信息异步校验
  9. openGauss的开源数据库之路
  10. 关于BCT,你需要知道的是...