Какой алгоритм работы двоичного поиска
Python
Junior
Без компании
Какой алгоритм работы двоичного поиска
Ответы
Двоичный поиск — это алгоритм поиска элемента в отсортированном массиве, который работает за время O(log n).
- **Определяем границы поиска** — левую (`low`) и правую (`high`).
- **Находим средний элемент** (`mid = (low + high) // 2`).
- **Сравниваем** искомый элемент (`target`) с `mid`:
- Если `target == mid` → элемент найден.
- Если `target < mid` → ищем в левой половине (`high = mid - 1`).
- Если `target > mid` → ищем в правой половине (`low = mid + 1`).
- **Повторяем**, пока `low <= high`. Если границы пересеклись — элемента нет.
**Пример на Python:**
```
def binary_search(arr, target):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1 # Элемент не найден
```
**Нюансы:**
- Массив должен быть отсортирован.
- Для больших массивов `mid = low + (high - low) // 2` избегает переполнения.