[回溯法] 回溯法介绍-回溯与递归的区别

回溯法是一种试探性的解决问题方法,通过不断试探并适时回溯寻找解决方案。它适用于寻找最优解、所有解或一组解的问题,如八皇后问题。回溯法的算法思想类似深度优先搜索,其过程类似于先序遍历隐含的状态树。回溯法可以通过递归结构实现,但并不等同于递归,递归只是实现回溯法的一种方式。
摘要由CSDN通过智能技术生成

原文链接:https://www.yuque.com/cppdev/algo/loeps2

【回溯法】

  1. 有一类问题,我们不知道它明确的计算法则。而是先进行试探,试探到最终状况,发现不满足问题的要求,则回溯到上一个状态继续试探。这种不断试探和回溯的思想,称为回溯法(Backtrcking)
  2. 此类问题包括:求最优解、一组解、全部解。例如八皇后问题

【回溯的算法思想】一直往下走,然后再一步步往回走
面对一个问题,每一步有多种做法。先做其中一个做法,然后再此基础上一直做下去,把这个做法的所有可能全部做完,再回来,做第二种做法。

【例子】

  1. 深度优先搜索
  2. 求一个序列的幂集
  3. 八皇后问题
  4. 涂色问题

【回溯法实质】它的求解过程实质上是先序遍历一棵“状态树”的过程。只不过,这棵树不是遍历前预先建立的,而是隐含在遍历过程中。如果认识到这点,很多问题的递归过程设计也就迎刃而解了。

【回溯与递归的区别】回溯这个算法思想可以由递归这个算法结构来实现

递归 回溯
是一种算法结构 是一种算法思想,可以用递
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

geodoer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值