Adloun

NSI (terminale) · Chapitre 6 · Exercice de TD

Première occurrence par dichotomie

Diviser pour régner · niveau 2

Énoncé

Première occurrence par dichotomie.

Modifier la recherche dichotomique pour qu'elle renvoie l'indice de la première occurrence d'une valeur présente plusieurs fois dans un tableau trié.

Corrigé

on continue la recherche dans la moitié gauche même après avoir trouvé la cible, en mémorisant la position courante.


def premiere_occurrence(tab, cible):
    g, d = 0, len(tab) - 1
    res = -1
    while g <= d:
        m = (g + d) // 2
        if tab[m] == cible:
            res = m          # on memorise et on cherche plus a gauche
            d = m - 1
        elif tab[m] < cible:
            g = m + 1
        else:
            d = m - 1
    return res

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 →