Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Recherche Linéaire ou Séquentielle
Technique qui consiste à passer en revue les éléments
jusqu'à ce qu'on trouve le bon ou que la liste ait été
entièrement parcourue
Si le tableau n'est pas trié : Arriver à la fin signifie que
l'élément n'existe pas
Si le tableau est trié : le premier élément trouvé > à
l'élément cherché permet d'arrêter la recherche, de plus
cette position correspond à celle ou il faudrait insérer
l'élément cherché pour garder le tableau trié
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Recherche Linéaire
Algorithme de recherche séquentielle dans un
tableau de N entiers
fonction rechercheSeq(tab:Tableau,valeur:Entier): Booléen
variable locale : i : Entier
i <- 1
tantQue ( i <= longueur(tab) ) faire
si (tab[i] = valeur) alors
retourner VRAI
finSi
i <- i+1
finTantQue
retourner FAUX
finFonction rechercheSequentielle
Complexité en O(n)
au pire et en
moyenne
Complexité en O(1)
au meilleur des cas
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Recherche Linéaire
Commentaires
L’ensemble des données est un tableau ou une liste
Généralement cet algorithme est utilisé sur des structures
de données qui ne permettant pas un accès direct facile :
Listes chaînées
On s’arrête dès qu’on a trouvé l’élément recherché
Sinon on peut retourner l’algorithme sur le reste pour
savoir si l’élément est encore présent
Plutôt qu’un booléen, on peut retourner la place de
l’élément dans l’ensemble : le supprimer par exemple
La complexité peut être réduite si les éléments les plus
recherchés se trouvent en tête de la structure de donnée
Université de Corse - IUP NTIC2 2005/2006 – Algorithmes et Structures de Données
Recherche auto-adaptative
Réorganiser l’ensemble au fur et à mesure des
recherches
Minimisation du nombre de comparaison lors des futures
recherches
Idée 1
Après chaque recherche, placer l’élément en tête de la
structure
Bonne solution pour implémentation chaînée
Mauvaise solution pour implémentation contiguë
Idée 2
Après chaque recherche, faire progresser l’élément d’une
place vers la tête de l’ensemble : Adaptée aux 2
implémentation