Fiche à trous · Terminale · NSI
Le paradigme diviser pour régner
Complétez de mémoire, puis vérifiez avec la page de corrigé.
Couper un problème en deux ne le rend pas automatiquement plus facile. Si l'une des moitiés contient presque tout, ou si recoller les morceaux coûte aussi cher que résoudre le problème entier, on a fait beaucoup de travail pour rien. Le paradigme n'est efficace que sous conditions, et c'est de ces conditions qu'il s'agit.
Le principe
Règle
2Règle
4Piège
Considérer qu'un algorithme relevant de diviser pour régner est nécessairement plus efficace qu'une approche directe.
Vérifier les deux conditions avant d'annoncer la moindre complexité.
Trois exemples classiques
Propriété
Le tri rapide illustre exactement ce que les deux conditions signifient. Sa combinaison est gratuite — après partition, les deux parties sont déjà à leur place relative —, ce qui est un avantage sur le tri fusion. Mais l'équilibre des tailles dépend du pivot : bien choisi, O(n log n) en moyenne ; systématiquement mal choisi, O(n²). D'où les stratégies de choix de pivot, qui sont tout l'enjeu de son implémentation.
Calculer la complexité
Propriété
7Concevoir un algorithme diviser pour régner
- 8.
- 9.
- 10.
- 11.
- 12.
- Mes sous-problèmes sont-ils de même nature que le problème initial ?
- Sont-ils de tailles comparables ?
- Le coût de la combinaison est-il inférieur à celui d'une résolution directe ?
- Ai-je écrit un cas de base atteint à coup sûr ?
- Ai-je posé la récurrence au lieu d'annoncer une complexité de mémoire ?
- Ai-je vérifié le cas défavorable, et pas seulement le cas moyen ?