简述递归的执行过程

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

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

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

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

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

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

    我们以计算3的阶乘为例. 由于计算3的阶乘必须要计算2的阶乘, 故将此问题转化为计算2的阶乘; 而计算2的阶乘又需要计算1的阶乘, 故将问题转化为计算1的阶乘. 由于1的阶乘可以直接求解, 也就是说1的阶乘是求解阶乘问题的最简单形式, 即规模最小的子问题, 所以1的阶乘是整个递归过程的终止条件. 当递归条件不满足时, 递归是不断前进的, 因此递推阶段也称为递归前进阶段. 在递推阶段中, 必须要有终止递归的条件出现

猜你喜欢

转载自blog.csdn.net/weixin_42048463/article/details/115324901