广搜与深搜算法

**

广搜与深搜算法

**
**Dfs(深度优先搜索)**大致思路就是——从一个起点一直走,走不通就掉头,然后换一条路继续走。按照一定的规则和顺序不停的去试来找到目标。
有些深搜中为了避免走走过的地方导致死循环,会对走过的情况打上标记,走过了就不再走了,最后走过了一条路并考虑完所有情况时(搜到底不能再搜),再取消掉标记,恢复到初始状态,这就是回溯。
深搜常常用于遍历所有可能情况问题中。有些情况因为要走到尽头才会回到初始的点,所以在一些情景会消耗大量的时间。

Bfs(广度优先搜索)——从起点开始,查看与其相邻并且满足题中条件的周围的所有点(第一层点),然后再以他们为“起点”,再去查看与他们相邻的第二层的点,一层一层的遍历,直到找到目标。
广搜一般用于寻找最小路径等类型题目,因为是层层寻找,所以寻找到的目标一定是最好的解,其大概过程如同一滴水滴到水池产生的水波。但是因为每一次都会一次又一次查找周围的节点,具有盲目性,某些情况占用大量的空间。

实现:
深搜
1.将起始点放入
2.以该起始点向一个方向开始搜索,找到下一个点
3.判断该点是否满足题中条件(如界限,是否走过)然后打上标记
4.判断该点是否为目标点,若是,保存结果 …
5.如果不是,则以该点为新的一个起始点重复先前步骤
6.若起始点衍生出的所有情况皆无可能,则清除标记往另一个方向搜

广搜(常用队列和结构体)假设队列命名为q
1.将起始点放入

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值