剪枝思想及其妙用

剪枝思想在算法中用于避免不必要的操作和搜索,提高效率。本文通过质数判断、RRT路径规划和决策树三个例子阐述剪枝的应用:质数判断中,通过优化减少判断次数;RRT中,通过裁剪冗余节点优化路径;决策树中,剪枝能防止过拟合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

剪枝一词引自对树木的修剪,即修剪掉不必要的枝叶以调整树冠结构或更新枝叶等。而在算法中,剪枝思想则是避免不必要的操作和搜索,或在结果中修剪不必要的部分以获得更好的效果。

这里举三个不同类型算法的例子,以更好的理解剪枝思想的应用:

质数
  • 剪枝一:最简单的判断n是否为质数的方法是根据其定义判断从2到n-1是否存在其约数,时间复杂度O(n);最常用的判断则是判断从2到sqrt(n)是否存在其约数,时间复杂度O(sqrt(n))

    • 剪枝操作:从2到(n-1)剪枝为2到sqrt(n)
  • 剪枝二:判断2之后,就可以判断从3到sqrt(n)之间的奇数了,无需再判断之间的偶数,时间复杂度O(sqrt(n)/2)

    • 剪枝操作:从2到sqrt(n)剪枝为3到sqrt(n)之间的奇数
  • 剪枝三:首先看一个关于质数分布的规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等等;注意反过来是不对的,即和6的倍数相邻的数是质数,如35

    证明:令x≥1,将大于等于5的自然数表示如下:

    ··· 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ···

    可以看到,不在6的倍数两侧,即6x两侧的数为6x+2࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海晨威

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

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

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

打赏作者

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

抵扣说明:

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

余额充值