关于深搜广搜的理解

在这里插入图片描述
假设我们从S开始搜索,需要搜索到E.
. 表示可通行
#表示不可通行

什么是深搜

深搜一般用于整个图的遍历,它一般用于求多个解的情况,其过程
简要来说是对每一个	  可能的分支路径深入到不能再深入为止,
而且每个节点只能访问一次
如上图所示,深搜会得到两条路径分别为向右向下和向下向右在向下。因为
需要遍历得到所有解,深搜往往会比广搜需要花费更多的时间

什么是广搜

广搜一般是用于求图的最短路径,比如迷宫中走到某一点的最短距离,或者
某个字符串交换达到目标字符串的最少次数,解的个数一般是为单一的,可
以把搜索的整个过程想象成一棵树,要求的解就是其中的某一个节点,且距
离根节点是最近的。
如上图所示,设S的坐标为(0,1)
第一步:到达点的坐标为(0,2)(1,1)
第二步:到达点的坐标为(0,3) (2,1)
第一步还可能搜到的点为(-1,1) (0,0),但是(-1,1)超出了图的范围,
(0,0)处结点为#,不可通行,第二步同理。

两种搜索的异同


总的来说两种搜索方法的时间复杂度和空间复杂度是差不多的,但是在只求最优解的情况下,广搜因为可以在某一步搜到答案立刻停止(因为搜到的第一个答案必然是最优解),所以耗费的时间往往比深搜要少很多。

任何搜索过程都要求不能走回头路(随着搜索步数的增多,允许走回头路的情况下,每一步可走路径会多到搜不下去),所以都需要存储搜索地图中某点的访问状态。
因为搜索的地图往往是有边界的,并且超出边界会造成不可预知的错误,所以两种搜索都需要在搜索中进行边界状态判断。
ps:这两点也是我作为初学者经常忘记的,所以还是提醒一下大家牢记~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值