递归效率

来源:互联网 发布:万网域名注册怎么用 编辑:程序博客网 时间:2024/05/17 08:34

 使用递归的代价是十分巨大的:它会消耗大量的内存!!递归循环时它用的是堆栈,而堆栈的资源是十分有限的。上面的例子你只能用一个很小的n值。如果n=20,即Febc(20)的话,它将调用Febc(n)函数10000多次!!!

函数递归调用是很常见的做法,但是它往往是低效的

尾递归是最简单的情形,好的编译器甚至可以自动的识别尾递归并把它转换成循环迭代。

使用动态规划会计算很多不需要的结果,尽管如此,它的效率远远高于直接递归运算