简述递归的执行过程

    递归是计算机科学中一个非常重要的概念, 也是程序设计中一种常用的问题求解策略. 

问题: 递归求解问题的基本思想是什么?

    递归是程序设计中一种常用的问题求解策略, 它的基本思想就是把规模较大的、较难解决的问题转化为规模较小的、易于解决的同类子问题. 而规模较小的子问题又可转化为规模更小的子问题, 当问题规模小到一定程度时, 我们可以直接得出这个问题的解, 从而得到原始问题的解.

    一个递归算法有两个基本要素——递归的一般条件和递归的基本条件. 递归的基本条件也称为递归的终止条件, 它是保证递归可以终止的条件, 因此递归的基本条件也称为递归的出口. 递归的一般条件实际上代表了一种递归关系, 它是使得问题能向递归出口转化的一种规则. 

问题: 递归算法是如何执行的?

    递归算法的执行过程可以分为两个阶段——递归阶段和回归阶段. 在递归阶段中, 原本规模较大、较为复杂的问题被逐步分解为规模较小、与原始问题类似的子问题, 换句话说就是不断降低问题的规模, 直到可以转化为一个最简单的、可以直接求解的问题为止. 

    我们以计算3的阶乘为例. 由于计算3的阶乘必须要计算2的阶乘, 故将此问题转化为计算2的阶乘; 而计算2的阶乘又需要计算1的阶乘, 故将问题转化为计算1的阶乘. 由于1的阶乘可以直接求解, 也就是说1的阶乘是求解阶乘问题的最简单形式, 即规模最小的子问题, 所以1的阶乘是整个递归过程的终止条件. 当递归条件不满足时, 递归是不断前进的, 因此递推阶段也称为递归前进阶段. 在递推阶段中, 必须要有终止递归的条件出现. 当到达终止条件并获得最简单问题的解后, 递推阶段结束, 递归过程由此进入回归阶段. 在回归阶段中, 计算结果逐级返回到上一层递归调用处, 以此得到更为复杂的问题的解. 当递归终止条件满足后, 递归逐级返回,  因此回归阶段也称为递归返回阶段. 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

好梦成真Kevin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值