2016-01-03 4 views
-1

Может кто-то прокомментировать разницу между итерацией и рекурсией. Оба выглядят одинаково для меня .. Я знаю, что будет разница, но не знаю, что. Пожалуйста, помогите мне знать разницуразница между рекурсией и итерацией?

+1

имеют взгляд на [предыдущий ответ] (http://stackoverflow.com/a/2577042/2303366) – BraveHeart

ответ

1

Рекурсия - это когда функция/метод вызывается из одной и той же функции/метода (прямо или косвенно). Это приводит к тому, что каждый последующий вызов имеет копию локальных переменных в стеке (или где угодно), и в конце он должен быть «размотан», завершая каждую из функций/методов и возвращаясь к предыдущему вызову. Рекурсия часто приводят к относительно короткий код, но использовать больше памяти при работе (потому что все уровни вызова накапливаются в стеке)

Итерация, когда тот же самый код выполняется несколько раз, с измененными значениями некоторых переменных, может быть, лучшие приближения или что-то еще. Итерация происходит внутри одного уровня вызова функции/метода и не нуждается в разматывании.

0

Вы повторяете повторение функции.

Пример, я это итератор:

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

Вы рекурсия, используя функцию внутри себя.

Пример:

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

Спасибо за объяснение. Я понял сейчас. Спасибо еще раз – kanishka