Recherche séquentielle
Chercher une valeur en regardant les cases une à une : arrêt dès qu'on trouve, indice renvoyé ou valeur d'absence, première occurrence et nombre de comparaisons.
- 24 cartes
- 6 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
- Comprendre
Quelques cartes du deck
Recherche séquentielle : de quoi s'agit-il ?
Voir la réponse
Algorithme qui compare la valeur cherchée aux éléments dans l'ordre, case après case, sans rien exiger de l'ordre du tableau.
Elle marche sur n'importe quel tableau, trié ou non. Son coût est proportionnel à la taille : dans le pire cas, on regarde toutes les cases.
Qu'affiche ce programme ?
```python
def find(t, v):
for i in range(len(t)):
if t[i] == v:
return i
return -1
print(find([5, 12, 8, 12, 3], 12), find([5, 12, 8], 7))`1 -13 -11 02 -1
Voir la réponse
1 -1Le premier appel s'arrête à la première occurrence de 12, l'indice 1. Le second regarde les trois cases sans succès et atteint le
return -1placé après la boucle.Dans le pire cas, la recherche séquentielle d'une valeur dans un tableau de n cases fait … comparaisons, que la valeur soit … ou en dernière case.
Voir la réponse
Dans le pire cas, la recherche séquentielle d'une valeur dans un tableau de n cases fait n comparaisons, que la valeur soit absente ou en dernière case.
Dans les deux cas, il faut regarder toutes les cases avant de conclure. Dans le meilleur cas, la valeur est en première case : une seule comparaison.
Sortie anticipée : de quoi s'agit-il ?
Voir la réponse
Interruption d'une boucle dès que son but est atteint, sans visiter les éléments restants :
returnoubreak.Une fois la valeur trouvée, regarder la suite est inutile. Sans sortie anticipée, une boucle qui écrit
pos = ià chaque succès rendrait la dernière occurrence au lieu de la première.