Adloun

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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →