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
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.