Oluline erinevus: programmeerimisel saab rekursiooni seletada rekursiivse funktsiooni arvestamisega. Rekursiivne funktsioon on kood, mis kordab koodi kordamiseks. Teisest küljest saavutatakse iteratsioon iteratiivse funktsiooniga, mis lõhub koodi mõne osa kordamist.
Programmeerimisel kasutatakse korduste tegemiseks rekursiooni ja iteratsiooni. Need viitavad protsessile, mida korratakse mitu korda. Rekursioon põhineb lähenemisviisil, milles midagi viitab ennast, kuni tingimus on täidetud. Meetod on rekursiivne, kui ta võib ise või kaudselt nimetada -

{
... nimi () ...
}
või
tühine nimi ()
{
... mäng () ...
}
tühine mäng () {
... nimi () ...
}
Edukaks rekursiooniks tuleb meeles pidada, et iga rekursiooniprotsessis tehtud kõne peab arvutust lihtsustama. Rekursioon saavutatakse baasjuhtumi määratlemisel.
int faktoriaal (int N)
{
kui (N == 0) naasta 1;
muu tagasi (N * faktoriaal (N-1));
}
Selles näites võib rekursiooni hõlpsasti näha avalduses (N * faktoriaal (N-1)), kus ta kutsub uuesti faktoriaalfunktsiooni. Rekursioon on väga kasulik, kuna see aitab koodi lühendada. Kuid rekursioon on jõudluses veidi aeglane.

funktsionaalne faktoriaal (n)
{
var loop, tulemus;
tulemus = 1;
jaoks (loop = 1; silmus <= n; silmus ++)
{
tulemus = tulemus * silmus;
}
tagastamise tulemus;
}
Selles näites saavutatakse silmus, kasutades täisarvusid vahemikus 1 kuni n, ja loop <= n avaldust kasutatakse kriteeriumina, et lõpetada edasine silmus. Seega võime järeldada, et samu tulemusi on võimalik saavutada rekursiooni ja iteratsiooni abil. Need mõlemad põhinevad siiski veidi erinevatel lähenemisviisidel. Igat rekursiivset algoritmi saab kirjutada ka iteratsioonide (silmus) abil.
Rekursiooni ja iteratsiooni võrdlus:
Rekursioon | Iteratsioon | |
Määratlus | Rekursioon viitab rekursiivsele funktsioonile, milles ta ennast uuesti koodi kordamiseks kutsub. | Iteratsioon saavutatakse iteratiivse funktsiooni abil, mis aheneb koodi mõne osa kordamiseks. |
Oluline punkt | Tuleb kindlaks määrata alusjuhtum | Lõpetamise tingimus tuleb kindlaks määrata |
Toimivus | Suhteliselt aeglane | Võrreldes kiire |
Mälu kasutamine | Võrreldes rohkem | Võrreldes vähem |
Kood | Väiksemad | Pikem |
Lõpmatu kordus | Lõpmatu rekursioon suudab süsteemi krahhida | Lõpmatu loopimine tarbib CPU tsükleid korduvalt |
Struktuur | Valik | Kordamine |
Kohalikud muutujad | Pole nõutud | Nõutud |