对递归、循环和迭代的理解

       递归、循环和迭代都是编程和算法中非常重要的知识,以下是本人对他们的理解,若有不对,还希望大家可以批评指正!

        递归:将一个大问题分解成多个相似的小问题,再将小问题分成更小的相似问题,然后逐个解决小问题,最后解决大问题,这就是递归,递归的思路是和栈的思想非常类似,递归在程序中就是自己调用自己。

       迭代:迭代的要点有3个,分别是:重复、改进、认知升级。对于一个目标,需要不断重复地去接近它,每一次都前进一点点,直至到达。改进,上一次的工作将会为这一次提供经验,不再是摸着石头过河。认知升级,迭代的过程是不断提高认知的过程,而升级是迭代的结果。迭代的例子有很多,比如手机更新换代,第5代的手机是在第4代的手机基础上改进的,而不是第1代。还有学习,比如我托业考试要考800分,如果英语很差的话,第一次不可能达到,我得考好多次,但每一次考试都不会是白考,都会为下一次考试增加经验和方法。

       迭代实质上是一个积累的过程,是一个量变到质变的过程 。

      循环:循环即当条件满足时重复相同的工作。迭代可以通过循环来实现,但是与循环有区别,迭代的条件是必须让上一次的结果作为本次的初始值,而循环没这个要求。

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
递归回溯和迭代回溯都是解决问题的常见方法,它们的主要区别在于求解问题的方式和实现方式。 1. 递归回溯: 递归回溯是通过递归调用函数本身来解决问题的方法。在每一层递归中,它会尝试所有可能的解决方案,并在找到解决方案或无法继续时进行回溯。具体步骤如下: - 确定递归函数的参数和返回值。 - 判断递归终止条件,即找到解决方案或无法继续。 - 在每一层递归中,尝试所有可能的解决方案。 - 如果找到解决方案,返回结果;否则,进行回溯,撤销上一步操作,继续尝试其他可能的解决方案。 递归回溯的优点是代码简洁,易于理解和实现。但是,在某些情况下,递归会导致函数调用栈溢出,并且可能存在重复计算的问题。 2. 迭代回溯: 迭代回溯是通过使用循环和栈来模拟回溯过程的方法。它不使用函数的递归调用,而是手动管理状态和回溯的过程。具体步骤如下: - 使用栈保存当前状态。 - 判断循环终止条件,即找到解决方案或无法继续。 - 在每一次循环中,尝试所有可能的解决方案。 - 如果找到解决方案,返回结果;否则,进行回溯,撤销上一步操作,继续尝试其他可能的解决方案。 迭代回溯的优点是避免了函数调用栈溢出的问题,并且可以更灵活地控制回溯的过程。但是,相比于递归回溯,迭代回溯的实现会稍微复杂一些。 综上所述,递归回溯和迭代回溯都是解决问题的有效方法,选择哪种方法取决于具体的问题和个人偏好。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值