您的位置:首页 > 其它

递归

2015-12-12 21:12 176 查看
递归包括两个过程:递推和回归。

一旦递推阶段结束,处理过程就进入回归阶段,在这之前的函数调用以逆序的方式回归。

尾递归

能够大量减少运行时间。

核心在于记录每一次递归后的取值。

以阶乘为例:

int fact(int n) {
if (n == 1 || n == 0) {
return 1;
} else
return n * fact(n - 1);
}


尾递归(储存当前计算值)

int fact(int n, int a) {
if (n == 1) {
return a;
} else if (n == 0) {
return 1;
} else
return fact(n - 1, n * a);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: