Бинарный поиск требует сортировки ввода .Как сортируется «b, a, ab, abc, c»?Похоже, он не сортируется по какому-либо очевидному ключу сортировки.Если вы пытаетесь искать несортированные данные, вам следует использовать хэш-набор, а не двоичный поиск в списке.
Кроме того, ваше вычисление средней точки немного ошибочно, поскольку добавление high + low может переполнить.Затем он становится отрицательным числом, которое делится на два.
Это крайне маловероятно для массивов реалистичного размера, но вполне возможно, что вы когда-нибудь захотите использовать этот алгоритм для типов данных, которые поддерживают индексирование с помощьюбольшие целые числа, такие как отображенный в памяти файл отсортированных данных.
Лучшей практикой для написания алгоритма бинарного поиска является (high - low) / 2 + low
при вычислении средней точки, потому что она остается в диапазоне все время.