Rechercher des données est une chose courante dans la vie de tous les jours (dictionnaire, annuaire, pour faire vos moyennes,...), autant qu'en informatique. Certaines entreprises ont des milliards de données (Google par exemple) et elle doivent rapidement y avoir accès.
Chercher une information dans un tableau non trié a un coût proportionnel à la taille du tableau \(\Theta(n)\) mais il existe un algorithme meilleur en complexité : l'algorithme de recherche dichotomique mais il demande d'avoir les données triées. Le nombre d'étapes de l'algorithme est égal au plus petit nombre k tel que 2k > taille des données. Ce nombre est égal à E(log2(taille des données) + 1 (E partie entiére, et log2 une fonction du programme de terminale. L'algorithme est en \(\Theta(ln(n))\)
Avec la recherche dichotomique la recherche des mots dans un dictionnaire de 35 000 mots se fait en 16 étapes. Si rechercher dans un tableau de taille 1000 < 210 se fait en 1s (avec un des deux algortithmes naif ou dichotomique) alors rechercher dans un tableau de taille 1000000= 1000 × 1000 < 220 se fait en 1000 s dans la méthode naive et en 2s avec la dichotomie.
La recherche dichotomique utilise un procédé algorithmique appelé "diviser pour régner" (comme le tri fusion évoqué au précédent cours).
Algorithme
Pour aller plus loin
La vidéo ci-dessous parle des algorithmes gloutons (que nous verrons bientôt) et de la méthode de dichotomie :