Расскажи принцип работы двоичного поиска
Python
Junior
Без компании
Расскажи принцип работы двоичного поиска
Ответы
Двоичный поиск — это алгоритм поиска элемента в отсортированном массиве, который работает за время O(log n). Он делит массив пополам, сравнивает искомый элемент с центральным, и в зависимости от результата продолжает поиск в левой или правой половине.
**Алгоритм:**
- Находим середину массива.
- Если элемент в середине равен искомому — возвращаем индекс.
- Если элемент меньше искомого — повторяем поиск в правой половине.
- Если элемент больше — в левой.
- Если границы сходятся, а элемент не найден — возвращаем -1.
**Пример на Python:**
```
def binary_search(arr, target):
left, right = 0, 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
```
**Особенности:**
- Работает только с отсортированными массивами.
- Эффективен для больших данных.
- Может быть реализован рекурсивно или итеративно.