Kulcs különbség: A programozás során a rekurzió a rekurzív függvény figyelembe vételével magyarázható. A rekurzív függvény újra meghívja magát, hogy megismételje a kódot. Másrészről az iteráció egy iteratív függvény segítségével érhető el, amely a kód bizonyos szakaszának megismétlésére szolgál.
A programozás során a recurziót és az iterációt használják az ismétlések eléréséhez. Olyan folyamatra utalnak, amely többször megismétlődik. A rekurzió olyan megközelítésen alapul, amelyben valami valamire utal, amíg egy feltétel teljesül. Azt mondják, hogy egy módszer rekurzív, ha közvetlenül vagy közvetve hívhatja magát, mint:

{
... név () ...
}
vagy
érvénytelen név ()
{
... játszma, meccs() ...
}
érvénytelen játék () {
... név () ...
}
A sikeres rekurzió érdekében szem előtt kell tartani, hogy a rekurziós folyamatban végrehajtott minden hívásnak egyszerűsítenie kell a számítást. A rekurziót egy alap eset meghatározásával érjük el.
int faktori (int N)
{
ha (N == 0) visszatér 1;
máskülönben visszatér (N * tényező (N-1));
}
Ebben a példában a rekurzió könnyen látható az állításban (N * tényező (N-1)), ahol újra felhívja a tényezői funkciót. A rekurzió nagyon hasznos, mivel segít a kód lerövidítésében. A rekurzió azonban egy kicsit lassú a teljesítményben.

függvény tényező (n)
{
var hurok, eredmény;
eredmény = 1;
A (hurok = 1; loop <= n; hurok ++)
{
eredmény = eredmény * hurok;
}
visszatérési eredmény;
}
Ebben a példában a hurok az 1-től egész számokig terjedő egész számok használatával érhető el, és a ciklus <= n utasítás használata kritériumként szolgál a további hurok megállításához. Így arra a következtetésre juthatunk, hogy ugyanazok az eredmények érhetők el rekurzió és iteráció használatával. Mindazonáltal mindkettő egy kicsit eltérő megközelítéseken alapul. Bármely rekurzív algoritmus iterációval (hurkok) is írható.
Rekurzió és esztergálás összehasonlítása:
rekurzió | Ismétlés | |
Meghatározás | A rekurzió olyan rekurzív függvényre utal, amelyben újra meghívja magát a kód megismétlésére. | Az iteráció egy iteratív funkcióval érhető el, amely a kód egyes szakaszainak ismétlődéséhez vezet. |
Fontos pont | Meg kell határozni egy alap esetet | Meg kell határozni a felmondási feltételt |
Teljesítmény | Összehasonlítóan lassú | Összehasonlítóan gyors |
Memóriahasználat | Összehasonlítva több | Összehasonlítva kevesebb |
Kód | Kisebb | Hosszabb |
Végtelen ismétlés | A végtelen rekurzió képes összeomlani a rendszert | A végtelen hurok ismételten fogyaszt CPU ciklusokat |
Szerkezet | Kiválasztás | Ismétlés |
Helyi változók | Nem szükséges | Kívánt |