İkili arama, sıralanmış bir dizide arama aralığını tekrar tekrar yarıya indirilmek suretiyle hedefi bulur. Her karşılaştırma, kalan öğelerin yarısını ortadan kaldırır ve O(log n) zaman verir.
Fikir
Ortadaki öğeye bakın. Hedefe eşitse bitti. Hedef daha küçükse, sol yarısı arayın; daha büyükse, sağ yarısı arayın. Bulunana veya aralık boşalana kadar tekrarlayın.
Örnek
():
lo, hi = , (arr) -
lo <= hi:
mid = (lo + hi) //
arr[mid] == target:
mid
arr[mid] < target:
lo = mid +
:
hi = mid -
-
binary_search([, , , , ], )
