Programme

NSI (Spé) — Algorithmique

Recherche dichotomique et algorithmes gloutons

Recherche efficace dans une liste triée, stratégie gloutonne

Résumé synthétiqueFiche en 4 sectionsQuiz de 10 questionsGratuit, sans pub

Résumé

La recherche dichotomique (ou binaire) trouve un élément dans une liste triée en $O(\log n)$, au lieu de $O(n)$ pour la recherche séquentielle. Le principe : diviser par deux la zone de recherche à chaque étape, en comparant la valeur cherchée à l'élément du milieu puis en éliminant la moitié impossible. Dans une liste triée de 1000 éléments, une dizaine de comparaisons suffisent (car $\log_2(1000) \approx 10$). Les algorithmes gloutons construisent une solution étape par étape en faisant à chaque fois le choix localement optimal, sans revenir en arrière. Le rendu de monnaie en est l'exemple type : on rend toujours la plus grande pièce possible. Cette stratégie ne donne pas toujours l'optimum global, mais elle est simple et souvent efficace.

S'entraîner

Ce thème dans une autre classe

Questions fréquentes

Les points clés à retenir sur Recherche dichotomique et algorithmes gloutons, extraits du quiz de révision.

Quelle est la précondition de la recherche dichotomique ?
Réponse :
La liste doit être triée
La dichotomie ne marche que sur une liste triée, car elle élimine une moitié en s'appuyant sur l'ordre.
Quelle est la complexité de la recherche dichotomique ?
Réponse :
$O(\log n)$
On divise la zone de recherche par 2 à chaque étape, d'où une complexité logarithmique $O(\log n)$.
Combien de comparaisons au maximum pour chercher dans une liste triée de 1024 éléments ?
Réponse :
11
$\log_2(1024) = 10$ divisions, mais il faut une comparaison de plus pour conclure : 11 au maximum.
Dans la dichotomie, si valeur < liste[milieu], que fait-on ?
Réponse :
droite = milieu - 1
La valeur est plus petite que le milieu : elle est dans la moitié gauche, donc droite = milieu - 1.
Qu'est-ce qu'un algorithme glouton ?
Réponse :
Un algorithme qui fait le meilleur choix local à chaque étape
Un glouton fait à chaque étape le choix qui semble le meilleur sur le moment, sans revenir en arrière.
Avec {1, 2, 5, 10, 20}, combien de pièces pour rendre 37 c (méthode gloutonne) ?
Réponse :
4
20 + 10 + 5 + 2 = 37, soit 4 pièces.
L'algorithme glouton donne-t-il toujours la solution optimale ?
Réponse :
Cela dépend du problème
Il est optimal pour certains problèmes (monnaie en euros) mais pas tous (contre-exemple {1, 3, 4}).
Avec les pièces {1, 3, 4}, quelle est la solution optimale pour rendre 6 ?
Réponse :
3+3 (2 pièces)
Le glouton donnerait 4+1+1 (3 pièces), mais l'optimal est 3+3 (2 pièces) : le glouton échoue ici.
Que renvoie la recherche dichotomique si l'élément est absent ?
Réponse :
-1 ou None
Quand la boucle se termine (gauche > droite) sans trouver, on renvoie -1 ou None pour signaler l'absence.
Combien de fois peut-on diviser 1 000 000 par 2 avant d'atteindre 1 ?
Réponse :
Environ 20
$\log_2(1\,000\,000) \approx 20$ : 20 étapes suffisent pour un million d'éléments, d'où l'efficacité de la dichotomie.