1. RECHERCHE D'UN ELEMENT DANS UN TABLEAU
La nécessité de trier des données résulte du besoin de les retrouver rapidement. Par
exemple, pour chercher l'adresse et le numéro de téléphone d'une personne, on parcours un
fichier jusqu'à trouver l'enregistrement qui le concerne.
On supposera par la suite que tous les éléments du fichier sont rangés dans un tableau en
mémoire centrale (ce qui n'est pas toujours possible).
1.1. Recherche séquentielle d'un élément
Pour rechercher séquentiellement un élément dans un tableau, on passe en revue tous les
éléments de ce tableau, un à un, jusqu'à trouver la position de l'élément recherché (appelé
encore indice). Un recherche séquentielle est plus ou moins rapide selon que l'élément
recherché est situé au début ou en fin du tableau. En moyenne, on passe en revue la moitié
des éléments. Si N est le nombre d'élément du tableau, le nombre moyen de comparaisons
sera N/2.
Exercice: écrire l'algorithme de recherche
1.2. Recherche dichotomique dans un tableau trié
Lorsque le tableau est trié numériquement ou alphabétiquement, la méthode de recherche
dichotomique permet de diviser le temps de recherche par 2 à chaque étape. L'algorithme est
le suivant:
1) Initialiser la section de recherche à l'ensemble du fichier.
2) Comparer le nom cherché au nom de l'élément situé au milieu de la section de
recherche
- si le nom cherché est plus petit que le nom de l'élément situé au milieu, on
recommence la recherche dans la première moitié
- si le nom cherché est plus grand que le nom de l'élément situé au milieu, la
recherche se poursuit dans la seconde moitié.
- sinon on a trouvé l'élément recherché
3) Recommencer en (2) tant que l'élément cherché n'est pas trouvé ou que la section de
recherche est constitué d'au moins un élément.
Lorsqu'il y a par exemples 1024 éléments, on retrouve l'élément recherché après au plus 10
comparaisons (210 = 1024) alors qu'il en faut en moyenne 512 dans le cas d'une recherche
séquentielle. Comme on le voit, l'algorithmique a une très grande importance dans la
programmation. Notons dès à présent que les algorithmes utilisés dépendent beaucoup de
l'organisation et des structures de données adoptées.