Загрузка данных


def binary_search(arr, target):
    left = 0                      # левая граница поиска
    right = len(arr) - 1          # правая граница поиска

    while left <= right:          # пока область поиска не пуста
        mid = (left + right) // 2 # находим середину (целочисленно)

        if arr[mid] == target:    # если нашли — возвращаем индекс
            return mid
        elif arr[mid] < target:   # если середина меньше цели...
            left = mid + 1        # ...ищем в правой половине
        else:                     # если середина больше цели...
            right = mid - 1       # ...ищем в левой половине

    return -1                     # элемент не найден