La recherche binaire est une méthode efficace — son estimation de complexité est O(log2(n)), tandis que la recherche séquentielle conventionnelle a O(n). Cela signifie que, par exemple, pour un tableau de 1024 éléments, une recherche linéaire, dans le pire des cas, lorsque l'élément recherché n'est pas dans le tableau, traitera tous les 1024 éléments. La recherche binaire est suffisante pour traiter les éléments \(log_2(1024) = 10\). Ce résultat est obtenu grâce au fait qu'après la première étape de la boucle, la zone de recherche se réduit à 512 éléments, après la seconde – jusqu'à 256 etc.
O(log2(n))
O(n)
au revoir (droite – gauche > 1) // Tant que la bordure droite est à droite de la gauche nc milieu = (gauche + droite) /< /span> 2 ; // Milieu de la zone de recherche si (A[moyen] >= b)alors droite = milieu ; // Déplacer la bordure droite autrement gauche = milieu ; // Sinon déplacer le bord gauche cc si (A[right] == X)alors sortie droite ; autrement sortie -1 ;
A
N
X
K
NON
1000 ms 32 Mb Rules for program design and list of errors in automatic problem checking