看啥推荐读物
专栏名称: 程序人生
程序人生,不止一面。关注程序员生活,汇聚开发轶事,奉送各种福利。
今天看啥  ›  专栏  ›  程序人生

函数递归调用?看这文就够了!

程序人生  · 公众号  · 程序员  · 2020-01-17 12:26
作者 | Cooper Song责编 | Elle出品 | 程序人生(ID:coder_life)我猜,大多数程序员第一次接触函数的递归调用都是在算斐波那契数列某项值的时候,这是函数递归调用最常见的应用之一。规定第一项和第二项为1,后面的项,每一项都是其前面两项的和。用公式表示就是f(n)=f(n-2)+f(n-1)。而进一步转化,就是f(n)=[f(n-2-2)+f(n-2-1)]+[f(n-1-2)+f(n-1-1)]。很明显,这是一个递归的过程。递归的优点是算法简单、容易理解,代码行数少。但递归也有缺点,咱们将上面的f(n)再化简一下就变成了f(n)=[f(n-4)+f(n-3)]+[f(n-3)+f(n-2)],可以看出,f(n-3)被计算了两次,而f(n-4)+f(n-3)就是再计算f(n-2),又与最后一项f(n-2)是一样的,f(n-2)也被重复计算了。因此,递归的一大缺点就是存在大量的重复计算,运行起 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照