Recursion 递归和迭代之间的区别?

Recursion 递归和迭代之间的区别?,recursion,iteration,Recursion,Iteration,有人能区分迭代和递归吗。在我看来,两者都是一样的。我知道会有不同,但不知道会有什么不同。请帮助我了解两者之间的区别我希望这篇文章能够向您解释: 用伪代码解释: 递归 function f(x){ do y; if(x<0){ return f(x-1) } else { return } } for(x in 1 to 10){ do y; } 递归是指从同一函数/方法中调用函数/方法(直接或间接)。这导致每个后续调用在堆栈(或任何地方)上都有其局部变量的副本,并且需要

有人能区分迭代和递归吗。在我看来,两者都是一样的。我知道会有不同,但不知道会有什么不同。请帮助我了解两者之间的区别

我希望这篇文章能够向您解释:

用伪代码解释:

递归

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

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


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

通过重复函数进行迭代

例如,i是迭代器:

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

看一看a谢谢你的解释。我现在明白了。。再次感谢
function(input){
   if (input == outcome) {return;}
   else {function(input+1);}
}