最近在学习算法,却发现自己对迭代和递归傻傻分不清,脑子转不过来弯儿,所以自己又学习了一下。
如果你和我一样分不清迭代和递归,那我衷心希望这篇文章能够帮助到你。
本篇只是通过一个简单的例子来说明迭代和递归,对于二者在算法中更深层次的运用不加以说明。
如有错误,欢迎指正,我会及时更正错误。
迭代(iteration):the process of repeating a mathematical or computing process or set of instructions again and again, each time applying it to the result of the previous stage
递归(recursion):the process of repeating a function, each time applying it to the result of the previous stage
(摘自牛津字典英文释义,都很简单,就不翻译了)
我们可以看出,迭代和递归都是在重复。
但是它们重复的内容,重复的方式不一样。
看一个最熟悉不过的例子吧——配波拉契数列:1,1,2,3,5,8,…得到f(n)
分析:
递归法:
int f(int n){
if(n