Sobes.tech
Junior

Wat is het verschil tussen het uitvoeren van dezelfde taak met behulp van recursie en een lus?

sobes.tech AI

Antwoord van AI

Recursie gebruikt een functie die zichzelf aanroept om een probleem op te lossen, door het op te splitsen in kleinere sub-taken tot het basisgeval. Een lus herhaalt daarentegen een blok code een bepaald aantal keren of totdat aan een voorwaarde is voldaan.

Kenmerk Recursie Lus
Uitvoering Functieaanroep Iteratie
Geheugen Gebruikt de oproepstack Gebruikt variabelen voor teller/voorwaarde
Leesbaarheid Kan beknopter zijn voor sommige taken Vaak directer
Prestaties Kan langzamer zijn door de overhead van oproepen Over het algemeen efficiënter
Stack overflow Risico op overflow bij diepe recursie Geen risico op stack overflow

Voorbeeld in C# (faculteit):

Recursieve implementatie:

// Recursieve berekening van faculteit
int FactorialRecursive(int n)
{
    if (n == 0)
    {
        return 1; // Basisgeval
    }
    return n * FactorialRecursive(n - 1); // Recursieve oproep
}

Implementatie met lus:

// Berekening van faculteit met lus
int FactorialIterative(int n)
{
    int result = 1;
    for (int i = 1; i <= n; i++)
    {
        result *= i;
    }
    return result;
}