Курс 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 3.12
  2. Логирование с Logzero
  3. Работа со случайными элементами
  4. Комментарии в Python
  5. Удаление символа из строки
  6. Создание графиков в терминале
  7. Лямбда-функции в defaultdict
  8. Поиск наиболее частого элемента
  9. Деление в Python
  10. Лямбда-функции в Python
  11. Проблема сравнения словарей
  12. Возврат нескольких значений
  13. Конструктор в Python
  14. Метод difference_update() — разность множеств
  15. Многопоточность в Python
  16. Замена символов в строке
  17. Рациональные числа в Python
  18. Сортировка HTML-элементов
  19. Метод bool() в Python
  20. PrettyTable: создание таблицы
  21. Обработка исключений в Python
  22. Метод join() для объединения элементов строки
  23. Методы HTTP запросов в Flask
  24. Списки в Python: синтаксис представления
  25. Создание директории в Python
  26. Создание файла с проверкой ошибки
  27. Управление виртуальными средами в Python
  28. Метод join для наборов
  29. Преобразование кортежа в словарь.
  30. Работа с утверждениями в Python
  31. Метод append() для списка
  32. Измерение времени выполнения
  33. Переопределение метода __and__
  34. Декодирование строк в Python
  35. Проверка подстроки в строке
  36. Подсказки при вводе данных в Python
  37. Создание вложенных циклов for
  38. Определение объема памяти объекта
  39. Бинарный поиск
  40. Обмен переменными в Jupyter
  41. Форматирование объектов с модулем pprint
  42. Оператор in для проверки наличия элемента
  43. Форматирование строк в Python
  44. Работа с collections в Python.
  45. Проверка на палиндром
  46. Функции map, filter, reduce

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