递归算法的三个分解步骤

您所在的位置:网站首页 递归分为哪两个阶段 递归算法的三个分解步骤

递归算法的三个分解步骤

2023-11-09 21:15| 来源: 网络整理| 查看: 265

递归是一个重要的算法,希望你也能学得会。

递归的三大步骤

编写递归函数的步骤,可以分解为三个。

递归第一个步骤:明确函数要做什么

对于递归,一个最重要的事情就是要明确这个函数的功能。这个函数要完成一样什么样的事情,是完全由程序员来定义的,当写一个递归函数的时候,先不要管函数里面的代码是什么,而要先明确这个函数是实现什么功能的。

比如,我定义了一个函数,这个函数是用来计算n的阶乘的。

// 计算n的阶乘(假设n不为0) int f(int n) { // 先不管内部实现逻辑 }

这样,就完成了第一个步骤:明确递归函数的功能。

递归第二个步骤:明确递归的结束(退出递归)条件

所谓递归,就是会在函数的内部逻辑代码中,调用这个函数本身。因此必须在函数内部明确递归的结束(退出)递归条件,否则函数会一直调用自己形成死循环。意思就是说,需要有一个条件(标识符参数)去引导递归结束,直接将结果返回。要注意的是,这个标识符参数需要是可以预见的,对于函数的执行返回结果也是可以预见的。

比如在上面的计算n的阶乘的函数中,当n=1的时候,肯定能知道f(n)对应的结果是1,因为1的阶乘就是1,那么我们就可以接着完善函数内部的逻辑代码,即将第二元素(递归结束条件)加进代码里面。

// 计算n的阶乘(假设n不为0) int f(int n) { if (n == 1) { return 1; } }

当然了,当n=2的时候,也可以知道n的阶乘是2,那么也可以把n=2作为递归的结束条件。

// 计算n的阶乘(假设n>=2) int f(int n) { if (n == 2) { return 2; } }

这里就可以看出,递归的结束条件并不局限,只要递归能正常结束,任何结束条件都是允许的,但是要注意一些逻辑上的细节。比如说上面的n==2的条件就需要n>2,否则当n=1的时候就会被漏掉,可能导致递归不能正常结束。完善一下就是当n



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3