Diferența cheie: în programare, recursul poate fi explicat prin examinarea unei funcții recursive. O funcție recursivă este aceea care se recheamă din nou pentru a repeta codul. Pe de altă parte, iterația este realizată printr-o funcție iterativă care buclează pentru a repeta o anumită secțiune a codului.
În programare, recursiunea și repetarea sunt folosite pentru a obține repetări. Ele se referă la un proces care se repetă de mai multe ori. Recurgerea se bazează pe o abordare în care ceva se referă la ea însăși până când o condiție este îndeplinită. Se spune că o metodă este recursivă dacă se poate numi în mod direct sau indirect -
{
... Nume() ...
}
sau
nume nevalid ()
{
... joc() ...
}
void game () {
... Nume() ...
}
Pentru o recursiune reușită, trebuie să rețineți că fiecare apel făcut în procesul de recursiune trebuie să simplifice calculul. Recurgerea se realizează prin definirea unui caz de bază.
int factorial (int N)
{
dacă (N == 0) retur 1;
alt retur (N * factorial (N-1));
}
În acest exemplu, recursiunea poate fi văzută cu ușurință în instrucțiunea (N * factorial (N-1)), unde se apelează din nou funcția factorială. Recurgerea este foarte utilă deoarece ajută la scurtarea codului. Cu toate acestea, recursiunea este un ritm lent de performanță.
funcție factorial (n)
{
var buclă, rezultat;
rezultat = 1;
pentru (loop = 1; bucla <= n; buclă ++)
{
rezultat = rezultat * buclă;
}
rezultatul retur;
}
În acest exemplu, looping-ul este realizat prin folosirea numerelor întregi de la 1 la n, iar buclă <= n este folosită ca un criteriu pentru a opri buclele. Astfel, putem concluziona că aceleași rezultate pot fi obținute folosind o recursivitate și o iterație. Cu toate acestea, ambele se bazează pe abordări care sunt puțin diferite. Orice algoritm recursiv poate fi scris și prin iterații (bucle).
Comparație între Recursion și Iteration:
Recursivitate | Repetare | |
Definiție | Recurgerea se referă la o funcție recursivă în care se solicită din nou să repete codul. | Iterația se realizează printr-o funcție iterativă care buclează pentru a repeta o anumită secțiune a codului. |
Punct important | Un caz de bază trebuie determinat | Trebuie stabilită o condiție de terminare |
Performanţă | Comparativ lent | Comparativ rapid |
Folosirea memoriei | Comparativ mai mult | Comparativ mai puțin |
Cod | Mai mici | Mai lung |
Repetarea infinită | Recurgerea infinită este capabilă să prăbușească sistemul | Inceputul de buclă consumă în mod repetat ciclurile procesorului |
Structura | Selecţie | Repetiţie |
Variabile locale | Nu este necesar | Necesar |