对于两种搜索的思考和反思

DFS & BFS

dfs

深度优先搜索:就是一直往后走,直到走不动,可能是达到了限制的条件,或者达到了图的边界,函数中要用到递归的思想,这让我干到很难,这种东西就很玄学,反正慢慢的培养这种思想吧,急不得;递归要考虑好函数的出口,现在的理解就是,要想好怎么出去||到了最后一步的时候要干什么,怎么到下一步,递归能把一个复杂的问题用少量的代码写出来;跑题了 ,比如在一个图中,寻找有没有可行解,或者寻找最短的路径当然这不如用bfs省时间;假如说你在走迷宫,你拥有dfs的能力,现在的你不知道疲倦,你可以把每一条路都走一遍直到找到出口。

bfs

广度优先搜索:还是拿走迷宫距离,你拥有bfs的能力,现在的你可以无限制的分身,你的本体还可以在这些分身之间切换;每当你遇到一个岔路口,就派出分身而且你的分身还可以子再分身,这样迷宫的每一条路上就都有你的分身,人多力量大,出去也就很简单了;而且这样找的的路还是最短的,假设在一个图中有a节点,如果你两次经过了a节点,说明第二次一定是走了一条比较远的路找的;形象一点就像是,在一张之上有两个节点A,B,现在要求你从A开始找B,但是你并不知到AB的相对位置,最好的办法就是把墨水滴在纸上,墨水会向各个方向寻找B节点。。bfs解决的问题不只限图中;在一些寻找到最优解,最短路径,最少步数比如,几个杯子之间相互倒水求出最少的步数,反正很多的问题都可以用bfs求,现在一下子想不起来

写一些这几天刷题容易出现的错误

1.bool check(data)判断当前的传入的参数,是不是合理的,比如:检出数组越界,检查是否已经被标记,在图中跑代码,m n n m 傻傻分不清,一定要分清楚行和列啊!!!!;
2.在队列中放入数据的时候记得先标记,在判断能否放入的时候,判读是不是已经放入了!!!

else

bfs 其实就是一种模板算法,代码都很相似说起来尺取怎么写我给忘了

现在写的有关算法的代码感觉很乱,慢慢培养自己的代码风格,既然开始搞算法来,我就一定要搞出一些成绩来总不能大一一年都过完了,一点成绩都没有;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值