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;
}