首页 > 其他 > 详细

广搜和深搜

时间:2019-06-09 14:06:54      阅读:73      评论:0      收藏:0      [点我收藏+]

深度优先搜索:

dfs,运用递归函数,通过栈的结构进行搜索。

模板:

·dfs(状态) 
–if 状态 是 目标状态then
·dosomething
–else
·for 每个新状态
–if 新状态合法
»dfs(新状态)
·主程序:
·dfs(初始状态)

广度优先搜索:

bfs,运用递归函数,通过队列的方式搜索。

 

dfs就是对于某一个搜索树,通过一定的顺序把每一个枝上的子树全都遍历一遍。。也就类似于从起点出发,先把一个方向的点都遍历完才会改变方向......“不撞南墙不回头”

bfs是遍历某一深度,通过队列的方式存起来,边push边pop,知道队列为空才遍历完。bfs相对于dfs来说运用空间更多。DFS是空间效率高,DFS不需要保存搜索过程中的状态,而BFS在搜索过程中需要保存搜索过的状态,而且一般情况需要一个队列来记录。

 

广搜和深搜

原文:https://www.cnblogs.com/lbssxz/p/10993159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!