数据结构刷题-->剪枝

在刷题中会遇到,比如二叉树问题中会遇到剪枝的问题,我们需要,研究一下什么是剪枝
剪枝可谓是搜索的灵魂所在,我们知道搜索是个愣头青小伙,一路撞到底可能都撞不到答案,他还可能要撞很多次。所以有什么方法可以让他撞的次数少一点呢?我们知道搜索会形成一个搜索树,这其中有很多的枝杈,但是他们中许多其实是无用或者重复的,我们就可以把他们都”剪“掉,或者我们可以使用别的方法去减少枝杈,这样的过程称为剪枝,我们之后的搜索题目都可以有体现。
  常见的套路剪枝方法有这几种:
1、优化搜索顺序:有时候需要由大到小倒序.
2、排除重复情况:如果一个状态之前已经在之前被搜索过,那么我们没必要再搜索一次。
3、可行性剪枝:如果一个状态本来就无法达到最终状态,那么我们根本不需要再进行下去。形象的理解就是我们如果看到前面有一堵墙,那么我们就不会再走这条路,因为这条路是不通的,而不是一直走到撞墙在回去。
4、最优性剪枝:如果当前花费的代价已经超过了当前的最优解,那么也不需要再搜索下去了。
5、记忆化:记录每个状态的搜索结果,在重复遍历一个状态时直接返回。相当于我们在对图进行深搜的时候,标记一个节点是否被访问过。记忆化搜索也可以用在动态规划上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

以码平川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值