暑期集训个人记录-搜索篇

两类搜索

搜索算法蕴含了递归思想,通过不停的尝试去获得到结果。

除最简单的暴力搜索外,一般我们常用的是深搜(DFS)、广搜(BFS)这两类。

 两类搜索的个人理解与体会:

一.深搜

深搜我多使用递归的方法,在不同的路径中,优先按规则将一条路径走到底,再回头依次将其他路径走到底。

比如上下左右四个方向 递归顺序为上左下右,就是先向上走到头,然后退一步,往左走一步,再向上走到头,依次类推,递归的整个过程比较难理解,但只要知道分解的几个步骤就可以控制整个过程。(全排列其实就是这种思路)

这里贴大佬总结的一段话概况深搜的思路:

状态A(我是谁,我在哪)
1.判断当前状态是否满足题目需要,满足则进行保存,比较,输出等操作
2.判断当前状态是否合法(当前状态是否满足题目要求,或者数组是否越界),满足继续执行否则回到上次调用
3.往下走一层,递归调用dfs()

二.广搜

还是用上下左右走格子举例,深搜是选一个方向走到底,然后再下一个方向,广搜就是先把第一个格子相邻的四个方向都走一遍,然后再按顺序,把下一个格子的相邻格走一遍,即一层一层的推进。

广搜一般需要存储产生的所有结点,占的存储空间要比深搜大,因此设计程序的时候,必须要考虑储存空间问题。与此同时,广搜一般也不需要回溯,因此运算比深搜快一些。

个人碎碎念

我能说的东西其实不多,主要还是集训队有任务,我自己的经验贡献最多有个走格子的举例,还不一定便于理解,鉴于我这种萌新是在是没啥水平,我再贴几篇链接,不小心点进来看的人也不算是浪费时间了。

http://t.csdn.cn/QxlA3

http://t.csdn.cn/we9VL

http://t.csdn.cn/WnRQP

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值