Какая сложность алгоритма у двоичного поиска
Python
Junior
Без компании
Какая сложность алгоритма у двоичного поиска
Ответы
Двоичный поиск имеет временную сложность **O(log n)**. Это означает, что время выполнения алгоритма растёт логарифмически относительно размера входных данных.
**Почему?**
На каждом шаге алгоритм делит массив пополам, исключая половину элементов из рассмотрения. Для массива из `n` элементов максимальное количество шагов равно `log₂(n)`.
**Пример:**
```
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
```
**Примечание:**
- Требуется **отсортированный** массив.
- Пространственная сложность — **O(1)** (итеративная реализация).