回溯法 之 素数环

定义根据我大百度的定义: (探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。个人的理解回溯法的主要特点就是试探。试探 试探 试探(重要的话说三遍 = =,我好机智啊)我们原来通过递归,其实就是不断的尝试
摘要由CSDN通过智能技术生成

定义

根据我大百度的定义:
(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。

个人的理解

回溯法的主要特点就是试探

试探 试探 试探(重要的话说三遍 = =,我好机智啊)

我们原来通过递归,其实就是不断的尝试,找到所有我们组合的结果,这种方法我们在全排列问题上经常见到。我们利用递归实质上就是不断利用系统栈进行数据的暂存(当然,这个系统栈和你使用的编程工具有关,他会自动的申请一定长度的系统栈(内存空间),申请系统栈的长度可以设置,但是一般情况下数据不会太长,否则会出现所谓“溢出”的情况,抽象理解就是数组被占满),以及满足一定情况下的”自动执行”系统退栈操作,来进行数据的填充,到达组合一定序列的目的。

可以看出递归的特点

  1. 自动申请内存地址连续内存空间,也就是我们数据结构课程中的栈结构,不必我们在编程的时候为数据暂存位置而担心。
  2. 当不满足一定条件后,我们的系统栈自动之后退栈操作,也就是把栈顶的数据进行Pop()操作(弹出数据),这个特性让我们进行数据组合填充的时候提供了足够方便的操作。

我们由此可知:回溯法在递归这两个特点的本身进行延伸,我们可以利用一定的条件加以限制,让我们尝试次数大大减少,实质是减少我们递归的次数和深度,即在一颗树上,在深度和广度两个空间上做出剪枝操作。

想象的场景

回溯法的控制
我们面前有一堆图书,有各种种类,比如会计类,金融类,文学类等等。现在给你一个任务就是在这堆图书中查找计算机类的图书。
当我们拿到第一本书,我们看到图书的外皮的书籍名称,比如《中国近代史》,已经把这本书的功能和

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值