Блок задач

2. Алгоритмы

Темы
Сложность 3

Задача «Двоичный поиск»

Реализовать поиск делением пополам в отсортированном массиве. Функция принимает ключ key и находит индекс элемента, равного ключу.

def binary_search(arr, key):
    ...

Поведение функции проверить с помощью assert (особенно краевые случаи: size=0, size=1, size четное, size нечетное, элемента нет в массиве).