递归与迭代的区别

### 递归和迭代都是循环的一种。 ### 递归(recursion):递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A) ### 迭代(iteration):重复反馈过程的活动,每一次迭代的结果会作为下一次迭代的初始值。(A重复调用B) 递归是重复调用**函数自身实现循环**。 迭代是函数内**某段代码实现循环**。 理论上递归和迭代时间复杂度方面是一样的,但实际应用中(函数调用和函数调用堆栈的开销)递归比迭代效率要低。 其中,迭代与普通循环的区别是: 迭代时,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。 递归循环中,遇到满足终止条件的情况时逐层返回来结束。 迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。