Алгоритм — это четкая последовательность действий для решения задачи. Бинарный поиск — это эффективный способ найти элемент в отсортированном массиве.
Идея: Мы не проверяем каждый элемент подряд. Мы смотрим в середину. Если искомое число больше среднего — отбрасываем левую половину, если меньше — правую. Так мы каждый раз уменьшаем область поиска в 2 раза.
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
guess = arr[mid]
if guess == target:
return mid # Нашли! Возвращаем индекс
if guess > target:
high = mid - 1
else:
low = mid + 1
return None # Не нашли
numbers = [1, 3, 5, 7, 9, 11, 13]
print(binary_search(numbers, 7)) # Выведет 3 (индекс числа 7)