NSI (terminale) · Chapitre 6 · Application directe du cours
Recherche d'un maximum par diviser pour régner
Diviser pour régner · niveau 1 (application)
Énoncé
Recherche d'un maximum par diviser pour régner.
Écrire une fonction qui calcule le maximum d'une liste non vide en la coupant récursivement en deux moitiés.
Corrigé
def maximum(tab, g, d):
if g == d: # cas de base : un seul element
return tab[g]
m = (g + d) // 2
max_g = maximum(tab, g, m) # max de la moitie gauche
max_d = maximum(tab, m + 1, d) # max de la moitie droite
return max_g if max_g > max_d else max_d
# appel : maximum(tab, 0, len(tab) - 1)
La complexité est : chaque élément est examiné une fois.
100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 7 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.