Junior — Middle
58
Объясните принцип работы двоичного поиска и ситуацию, когда его целесообразно применять.
Ответ от нейросети
sobes.tech AI
Двоичный поиск — это алгоритм поиска элемента в отсортированном массиве или списке. Он работает по принципу «разделяй и властвуй»:
- Сравниваем искомое значение с элементом в середине массива.
- Если они равны — поиск завершён успешно.
- Если искомое значение меньше — повторяем поиск в левой половине массива.
- Если больше — в правой половине.
Процесс повторяется, пока элемент не найден или не останется подмассив для поиска.
Двоичный поиск эффективен при работе с большими отсортированными данными, так как его сложность — O(log n), что значительно быстрее линейного поиска.
Пример на 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 # элемент не найден
# Использование
arr = [1, 3, 5, 7, 9]
print(binary_search(arr, 5)) # Выведет индекс 2
Целесообразно применять двоичный поиск, когда данные отсортированы и требуется быстрый поиск без необходимости просматривать все элементы.