Курс 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"

  1. Создание таблиц в Python с PrettyTable
  2. Переворот последовательности
  3. Установка переменной среды в Python
  4. Зарезервированные слова в Python
  5. Сглаживание списка
  6. Генератор данных в Keras
  7. Создание объекта timedelta
  8. Управление браузером с Selenium
  9. Множества и frozenset
  10. Импорт модулей в Python 3.12
  11. Удаление элементов из списка
  12. Метод enumerate() в Python
  13. Управление мышью и клавиатурой с Pyautogui
  14. Метод index() в Python
  15. Работа с Requests для HTTP-запросов
  16. Подсчет вхождений элементов
  17. Логирование с Logzero
  18. Конкатенация строк в Python
  19. Анонимные функции в Python
  20. Методы сравнения множеств
  21. Извлечение чисел из текста
  22. Оператор Walrus в Python
  23. Измерение времени выполнения кода
  24. Печать календаря
  25. Python Аргументы по умолчанию
  26. Создание копии списка в Python
  27. Оптимизация памяти с slots
  28. Философия Python
  29. Логирование с Loguru
  30. Получение значений из словарей
  31. kwargs в Python
  32. Нахождение разницы между списками в Python
  33. Работа с файловой системой в Python
  34. Проверка переменных окружения в Python
  35. Установка и использование модуля «howdoi»
  36. Форматирование строк в Python.
  37. Оптимизация памяти с __slots__
  38. Отправка HTTP-запросов с User-Agent
  39. Равенство и идентичность в Python
  40. Установка и использование Virtualenv
  41. Функция с **kwargs в Python
  42. Разделение строки на подстроки в Python
  43. Python 3.12: Псевдонимы типов
  44. Изучение объектов с помощью dir()
  45. Выбор редактора кода.
  46. Поиск с помощью регулярных выражений

Marketello читают маркетологи из крутых компаний