NSI (Spé) — Algorithmique
Principe de la programmation dynamique, mémoïsation, exemples classiques, algorithme de recherche textuelle naïve
10 questions
Voir tous les chapitres « Algorithmique et programmation » de la Seconde à la Terminale
Les points clés à retenir sur Programmation dynamique et recherche textuelle, extraits du quiz de révision.
Réponse : Se chevauchent (les mêmes apparaissent plusieurs fois)
La programmation dynamique est utile quand les sous-problèmes se chevauchent : les mêmes calculs reviennent plusieurs fois. La mémoïsation évite de les refaire.
Réponse : O(2ⁿ)
L'appel récursif naïf de fib(n) engendre un arbre d'appels de taille exponentielle O(2ⁿ), car fib(n) appelle fib(n-1) et fib(n-2), et ces appels se dédoublent.
Réponse : Stocker les résultats déjà calculés pour ne pas les recalculer
La mémoïsation stocke les résultats des sous-problèmes dans une structure (dictionnaire, tableau) pour les réutiliser directement si le même sous-problème se présente.
Réponse : O(n)
Avec la mémoïsation, chaque valeur fib(k) n'est calculée qu'une seule fois et stockée. Il y a n valeurs à calculer, d'où une complexité O(n).