递归和迭代之间的区别?

时间:2016-01-03 04:08:32

标签: recursion iteration

有人可以区分迭代和递归。两者对我来说都是一样的......我知道会有区别,但不知道是什么。请帮我知道区别

3 个答案:

答案 0 :(得分:2)

递归是指在同一函数/方法中(直接或间接)调用函数/方法的时间。这导致每个连续调用在堆栈(或任何地方)上具有其局部变量的副本,并且它需要被解开'最后,通过结束每个功能/方法并返回上一个呼叫。 递归通常导致相对较短的代码,但在运行时使用更多内存(因为所有调用级别都在堆栈上累积)

迭代是指多次执行相同的代码,更改某些变量的值,可能是更好的近似值或其他任何内容。迭代发生在一个函数/方法调用级别内,不需要展开。

答案 1 :(得分:0)

我希望本文能够解释你:http://www2.hawaii.edu/~tp_200/lectureNotes/recursion.htm

用伪代码解释:

<强>递归

An angular port of a Javascript SOAP Client into a factory that has a similar syntax to $http.

<强>迭代

function f(x){
  do y;
   if(x<0){ return f(x-1) } else { return }
}

答案 2 :(得分:0)

通过重复一个函数进行迭代。

示例,我是迭代器:

for (i = 0; i < 10; i++){
    function(input);
}

您可以使用自身内部的功能进行递归。

示例:

function(input){
   if (input == outcome) {return;}
   else {function(input+1);}
}