Cours 4 Recherche dlment dans un tableau 1
Cours 4 Recherche d'élément dans un tableau
1 - Introduction Dans ce chapitre, on considère que : • on manipule des données de type Élément; • le type Élément respecte un ordre (Ex: entiers, chaussures…); • on a défini un type Tab décrivant un tableau de taille N et contenant des Élément. Tab: type tableau[1. . N] de Élément; Problème : comment recher de manière efficace un élément dans un tableau trié ou non trié? Pour résoudre ce problème, nous allons écrire une fonction recherche(V x: Élément, V t: Tab) retourne entier qui renvoie • l'indice de x dans le tableau si x est dans le tableau t • N+1 si x n'est pas dans le tableau t
2 – Recherche séquentielle dans un tableau quelconque Principe : on effectue une recherche séquentielle jusqu'à ce qu'on • trouve l'élément recherché; OU • atteigne la fin du tableau.
Quel est le coût de cette recherche? Il y a plusieurs façons d'estimer le coût d'un algorithme : 1. le pire des cas 2. le meilleur des cas 3. le cas moyen Évaluons le coût (le nombre de comparaisons) de la recherche dans un tableau.
3 – Recherche séquentielle dans un tableau trié Principe : on effectue une recherche séquentielle jusqu'à ce qu'on • trouve l'élément recherché; OU • rencontre un élément plus grand que celui recherché; • atteigne la fin du tableau. OU
Quel est le coût de cette recherche? Il y a plusieurs façons d'estimer le coût d'un algorithme : 1. le pire des cas 2. le meilleur des cas 3. le cas moyen Évaluons le coût (le nombre de comparaisons) de la recherche dans un tableau. Si x n'est pas dans le tableau, on s'en aperçoit en moyenne en N/2 (contre N quand le tableau n'est pas trié).
4 – Recherche dichotomique dans un tableau trié Principe : on compare x avec l'élément m situé au milieu du tableau. • si m==x, on a trouvé x, on arrête la recherche; • si m>x on répète l'opération dans la moitié gauche du tableau; • si m<x on répète l'opération dans la moitié droite du tableau. Exemples…
Quel est le coût de cette recherche? Il y a plusieurs façons d'estimer le coût d'un algorithme : 1. le pire des cas 2. le meilleur des cas 3. le cas moyen Évaluons le pire des cas. Si x n'est pas dans le tableau, on s'en aperçoit au pire des cas en log 2 N (contre N lors d'une recherche séquentielle). Ex: pour un tableau de taille 1000, on aura au pire environ 10 comparaisons à effectuer lors d'une dichotomie, contre 1000 en séquentiel! Si x est dans le tableau, on s'en aperçoit au pire des cas en log 2 N (contre N lors d'une recherche séquentielle).
- Slides: 8