Курс Python → Бинарный поиск
Алгоритм бинарного поиска — это эффективный метод поиска элемента в отсортированном массиве. Он основан на принципе «разделяй и властвуй», который позволяет быстро сузить область поиска. Для начала работы алгоритм принимает отсортированный список, в котором будет осуществляться поиск. Затем алгоритм постоянно сравнивает значение поиска с серединой массива.
В зависимости от результата сравнения, алгоритм либо сужает область поиска до левой или правой половины массива, либо находит искомый элемент. Этот процесс продолжается до тех пор, пока не будет найден искомый элемент или область поиска сузится до пустого массива. Благодаря этому непрерывному делению массива на две части, алгоритм обеспечивает логарифмическую временную сложность.
def binary_search(arr, target):
low = 0
high = 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
Пример кода выше представляет функцию бинарного поиска на Python. Она принимает отсортированный массив и значение, которое необходимо найти в этом массиве. Функция последовательно сравнивает значение поиска с серединой массива и сужает область поиска до тех пор, пока не будет найден искомый элемент или область поиска не станет пустой. Если элемент найден, функция возвращает его индекс в массиве, в противном случае возвращается -1.
Другие уроки курса "Python"
- Сумма элементов списка
- Изменение элемента списка
- Тестирование функции сложения
- Функция enumerate() в Python
- Обрезка изображения с Pillow
- Блок else в Python
- Сложение матриц в NumPy
- Сортировка данных в Python
- Переворот строки с использованием цикла
- Методы shutil для работы с файлами
- Цикл for в Python
- Оптимизация строк в Python
- Определение локальных переменных в Python
- GitHub в Telegram: подписка на уведомления
- Итерация по коллекции в Python
- Генераторы в Python
- Работа с необработанными строками
- Измерение времени выполнения кода с использованием time
- Работа с итераторами в Python
- Непрерывная проверка в Python
- Хеши в Python
- Создание словарей и множеств в Python
- Множественное назначение в Python
- Статическая типизация в Python
- Пересечение списков с использованием множеств
- Удаление символов новой строки в Python.
- kwargs в Python
- Проверка элементов списка условием
- Регулярные выражения: метод match
- Подсчет количества элементов в списке
- Форматирование строк в Python
- Инверсия списка/строки в Python
- Конкатенация строк с помощью join()
- Применение функций в Python
- Генерация случайных чисел Python
- Функции any() и all() в Python
- Подробная информация о %pinfo
- Обработка исключений в Python
- Подсказки типов в Python
- Генератор списка с условием if
- Работа со строками в Python
- Частичное совпадение ввода
- Расчет времени выполнения кода
- Быстрый поиск кода
- Аннотации типов в Python
- Метод setdefault() в Python
- Константы в модуле cmath
- Метод округления чисел















