QCM
Vérifications rapides

Six questions courtes sur la recherche séquentielle.

1.Quel est le coût d’un accès indexé a[i] ?

2.Dans le pire cas (valeur absente, ou en dernière position), combien de comparaisons recherche(a, v) effectue-t-elle sur un tableau à éléments ?

3.Pourquoi second_maximum initialise-t-il ses deux variables m1 et m2 à partir des deux premiers éléments du tableau, plutôt que d’un seul ?

4.Parmi les opérations suivantes sur un dictionnaire Python, lesquelles sont considérées à coût constant, dans le modèle « boîte noire » du cours ?

5.Quel est le coût total de comptage(a) sur un tableau à éléments ?

6.Dans la démonstration de correction de maximum, que représente  ?

Exercice
Dérouler une recherche séquentielle

Soit a = [8, 15, 3, 15, 42]. On appelle recherche(a, 15).

Dérouler l’exécution de l’algorithme du cours, en indiquant les comparaisons effectuées, puis donner la valeur renvoyée.

  • on compare a[0] = 8 à  : différent
  • on compare a[1] = 15 à  : égal, on renvoie l’indice

La fonction renvoie (l’indice de la première occurrence de , même si apparaît aussi à l’indice ).

Exercice
Dérouler une recherche du second maximum

Soit a = [10, 4, 10, 7]. On appelle second_maximum(a).

a.

Donner les valeurs initiales de m1 et m2.

a[0] = 10 \ge a[1] = 4, donc m1 = 10 et m2 = 4.

Comparer a[0] et a[1] pour déterminer lequel des deux initialise m1.

b.

Dérouler les itérations restantes ( puis ), en indiquant à chaque étape les valeurs de m1 et m2.

  •  : . (soit ) est faux, mais (soit ) est vrai, donc m2 = 10.
  •  : . () est faux, et () est faux : rien ne change.

c.

En déduire la valeur renvoyée, et vérifier sa cohérence avec la définition du second maximum.

La fonction renvoie m2 = 10. Le maximum de a (qui vaut ) apparaît deux fois (aux indices et ) : d’après la définition du cours, le second maximum lui est donc bien égal — ce qui correspond au résultat obtenu.

La suite est gratuite avec un compte

Encore 2 blocs dans ce document. Créer un compte ne demande qu'une adresse e-mail.