Files
1ereNSI/algorithmes/DICHOTOMIQUE.md
2022-03-30 14:58:47 +02:00

1.6 KiB

Après avoir vu le parcours séquentiel d'un tableau dans le but de trouver un élèment, on va pouvoir voir une méthode bien plus efficace dans le cas d'une liste triée, la recherche dichotomique.

Le programme

bo_dichotomique


Etymologie

Le mot dichotomie vient du grec ancien


dikhotomia

qui signifie couper en deux


Problème de base

Supposons un tableau tab :

tab = [1,2,6,9,12,14,18,21,42]

Si on souhaite chercher un élèment, par exemple 7, en utilisant le parcours séquentiel on fonctionne par balayage (avec une boucle for...) et donc parcourir la liste du début à la fin en colparant chaque valeur à l'élèment recherché.

Ici par exemple, on effectuerait 9 comparaison pour finir par dire que non, 7 n'est pas présent.

Dans le cas d'une liste déjà triée, la recherche dichotomique permet d'améliorer les performances.


Principe

  • Si le tableau est vide, on renvoie False, la recherche est terminée.
  • Sinon, on trouve la valeur la plus centrale du tableau et on la compare avec l'élément recherché :
    • si la valeur est celle qu'on recherche, on renvoie True, la recherche est terminée.
    • si la valeur est plus petite que l'élèment recherché, on recommence la procédure avec la seconde moitié du tableau.
    • si la valeur est plus grande que l'élément recherché, on recommence avec la première moitié du tableau.

dichotomie

Par Tushe2000 — Template:LoStrangolatore, Domaine public, https://commons.wikimedia.org/w/index.php?curid=39675138