7. Recursie Flashcards
Wat is recursie?
Een methode is recursief wanneer de methode zichzelf oproept.
Deze techniek wordt net als bij iteratie gebruikt om een herhaling in de code te brengen.
Een recursieve methode moet er voor zorgen dat bij een nieuwe oproep het probleem eenvoudiger wordt en dat op een bepaald moment de recursie stopt.
Wat zijn de kenmerken van een goede recursieve methode?
- De methode roept zichzelf op
- Wanneer het zichzelf opnieuw oproept, is dat om een eenvoudiger probleem op te lossen.
- Er bestaat een situatie in het probleem dat eenvoudig genoeg is en direct kan opgelost worden, zonder opnieuw zichzelf op te roepen.
Wat is het nadeel van recursie?
Recursie in Java is niet zo efficiënt als iteratie. Dit komt omdat telkens er een nieuwe methode- oproep gebeurt de nodige informatie op het stack segment en heap segment moet bijgehouden worden.
In het geval van recursie heb je dus meer computergeheugen nodig (stack en heap worden groter) en zal de methode wellicht ook langer duren door de overhead die we hebben om alles op de stack en heap te zetten en er weer af te nemen.
Wat is het voordeel van recursie?
Een reden om recursie toch te gebruiken is omdat het probleem soms veel eenvoudiger op te lossen valt recursief ipv iteratief.
Geef een voorbeeld van een recursieve methode?
Het berekenen van de faculteit van een getal:
3! = 3 * 2 * 1 = 6
0! = 1 > ligt vast volgens definitie
public static int faculteit(int n) { if(n == 0) { return 1; } else { return n * faculteit(n-1); } }