Récursivité et diviser pour régner
Cas de base, récurrence
Récursivité et diviser pour régner
Définition
Une fonction est récursive quand elle s'appelle elle-même. Toute fonction récursive doit comporter :
- un ou plusieurs cas de base (sans appel récursif),
- un cas récursif qui se ramène à un sous-problème plus petit,
- une garantie de terminaison (un paramètre strictement décroissant vers le cas de base).
def factorielle(n):
if n <= 1: # cas de base
return 1
return n * factorielle(n - 1) # cas récursif
Pile d'exécution
Chaque appel empile une frame (variables locales, point de retour). La récursivité non terminale a un coût mémoire en où est la profondeur des appels. Python limite la pile (≈ 1000 appels par défaut, modifiable via sys.setrecursionlimit).
Paradigme « diviser pour régner »
- Diviser le problème en sous-problèmes indépendants.
- Régner : résoudre récursivement les sous-problèmes.
- Combiner les solutions partielles.
Exemples typiques :
| Algorithme | Diviser | Combiner | Complexité |
|---|---|---|---|
| Tri fusion | en deux moitiés | fusion triée | |
| Tri rapide | autour d'un pivot | concaténation | moyen |
| Recherche dichotomique | demi-tableau | – | |
| Exponentiation rapide | carré |
Théorème maître (intuition)
Pour :
- si : ,
- si : ,
- si : .
Le tri fusion vérifie donc .
Exponentiation rapide
def puissance(a, n):
if n == 0: return 1
demi = puissance(a, n // 2)
return demi * demi * (a if n % 2 else 1)
Sources et références
Ce cours est rédigé par l'équipe RévisionBac à partir du programme officiel et des sources institutionnelles ci-dessous. Elles permettent de vérifier les définitions, les chiffres et les normes citées.
- 1.Programmes et ressources du lycée général et technologique — Éduscol — Ministère de l'Éducation nationale
- 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat) — education.gouv.fr
- 3.Ressources et programme de NSI — Éduscol
- 4.Documentation du langage Python — Python Software Foundation
- 5.Protection des données et RGPD — CNIL
- 6.Archives et ressources documentaires — Archives nationales
Contenu vérifié et mis à jour le 08/08/2026. Les liens renvoient vers les sites officiels des éditeurs cités.
Historique éditorial
Ce chapitre est rédigé et relu par l'équipe RévisionBac, puis enrichi par les contributions validées.
- — Dernière mise à jour du cours (relecture et enrichissement)
- — Première publication de la fiche de cours