📘 Fiche de cours
L'essentiel du cours
La récursivité est une technique où une fonction s'appelle elle-même pour résoudre une instance plus petite d'un problème.
- Structure type :
- Cas de base : Condition d'arrêt pour éviter la boucle infinie.
- Cas récursif : Réduction du problème vers le cas de base.
- Principe "Diviser pour régner" : Diviser le problème en sous-problèmes, résoudre les sous-problèmes, et combiner les résultats.
Méthodes à maîtriser
- Analyse de la pile : Savoir tracer les appels successifs.
- Récursion terminale : Optimiser l'espace mémoire en évitant de garder des variables en attente.
- Conversion : Transformer un algorithme itératif en récursif et vice-versa.
Exemples corrigés
- Factorielle :
fact(n) = n * fact(n-1)avecfact(0) = 1. - Fibonacci :
fib(n) = fib(n-1) + fib(n-2)avecfib(0)=0, fib(1)=1.
Erreurs fréquentes
- Oublier le cas de base (Stack Overflow).
- Mauvaise réduction du problème (boucle infinie).
- Confusion entre récursivité et itération (utilisation inutile de la pile).