Может кто-то прокомментировать разницу между итерацией и рекурсией. Оба выглядят одинаково для меня .. Я знаю, что будет разница, но не знаю, что. Пожалуйста, помогите мне знать разницуразница между рекурсией и итерацией?
ответ
Я надеюсь, что эта статья объяснит вам: http://www2.hawaii.edu/~tp_200/lectureNotes/recursion.htm
Объясните псевдокоде:
рекурсию
function f(x){
do y;
if(x<0){ return f(x-1) } else { return }
}
итерация
for(x in 1 to 10){
do y;
}
Рекурсия - это когда функция/метод вызывается из одной и той же функции/метода (прямо или косвенно). Это приводит к тому, что каждый последующий вызов имеет копию локальных переменных в стеке (или где угодно), и в конце он должен быть «размотан», завершая каждую из функций/методов и возвращаясь к предыдущему вызову. Рекурсия часто приводят к относительно короткий код, но использовать больше памяти при работе (потому что все уровни вызова накапливаются в стеке)
Итерация, когда тот же самый код выполняется несколько раз, с измененными значениями некоторых переменных, может быть, лучшие приближения или что-то еще. Итерация происходит внутри одного уровня вызова функции/метода и не нуждается в разматывании.
Вы повторяете повторение функции.
Пример, я это итератор:
for (i = 0; i < 10; i++){
function(input);
}
Вы рекурсия, используя функцию внутри себя.
Пример:
function(input){
if (input == outcome) {return;}
else {function(input+1);}
}
Спасибо за объяснение. Я понял сейчас. Спасибо еще раз – kanishka
имеют взгляд на [предыдущий ответ] (http://stackoverflow.com/a/2577042/2303366) – BraveHeart