Adloun

Python (école d'ingénieur) · Chapitre 6 · Exercice

Compter les comparaisons

Complexité algorithmique

Énoncé

Soit la fonction de recherche linéaire suivante :

def recherche_lineaire(L, x):
    for i in range(len(L)):
        if L[i] == x:
            return i
    return -1

Exprimer le nombre de comparaisons effectuées dans :

  • Le meilleur des cas
  • Le pire des cas
  • Le cas moyen (en supposant que est présent avec probabilité et que toutes les positions sont équiprobables)

Corrigé

Soit .

  • Meilleur des cas : est le premier élément de la liste (). Une seule comparaison est effectuée.
  • Pire des cas : est le dernier élément de la liste ou est absent. La boucle parcourt toute la liste.
  • Cas moyen : Supposons que est présent dans la liste avec une probabilité ().
  • Si est présent (probabilité ), il se trouve à l'index avec une probabilité uniforme de . Trouver à l'index requiert comparaisons. Le nombre moyen de comparaisons est :
  • Si est absent (probabilité ), la recherche parcourt toute la liste et effectue comparaisons.

Le nombre moyen global de comparaisons est donc : Cas particuliers :

  • Si (l'élément est toujours présent) : .
  • Si (l'élément n'est jamais présent) : .

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →