Курс 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. Работа с IP-адресами в Python
  2. Построение графиков в Matplotlib
  3. Docstring в Python
  4. Функция enumerate() в Python
  5. Метод ifloordiv для пользовательских классов
  6. Оператор морж в Python 3.8
  7. Простой калькулятор Python
  8. HTTP-запросы с библиотекой Requests
  9. Списки в Python: основы
  10. Сравнение def и lambda функций в Python
  11. Срезы в Python
  12. Отладка в командной строке
  13. Проверка класса объекта
  14. Работа с Path в Python
  15. Создание словарей с defaultdict()
  16. Добавление элемента к кортежу
  17. Отслеживание выполнения программы с библиотекой tqdm
  18. Преобразование типов данных в set comprehension
  19. Управление памятью в Python
  20. Метод rmatmul для обратного матричного умножения
  21. Генераторные выражения и islice.
  22. Замена символов в Python
  23. Работа с итераторами в Python
  24. Создание новых списков через list comprehensions
  25. Хранение данных с помощью dataclasses
  26. Генераторы списков в Python
  27. Работа с zip()
  28. Преобразование генераторов в циклы
  29. Метод сравнения объектов в Python
  30. Работа с асинхронными задачами в Python
  31. Работа с типами данных в Python с помощью pydantic.
  32. Выражения-генераторы в Python
  33. Python reversed() функция
  34. Запуск асинхронной корутины
  35. Многострочные комментарии в Python
  36. Присвоение значений переменным в Python
  37. Просмотр атрибутов и методов класса
  38. Numpy: разбиение массивов
  39. Цикл for с enumerate() в Python
  40. Область видимости переменных
  41. Метод gt в Python
  42. Декораторы в Python
  43. Основы Python за 14 дней
  44. Функция __init__ в Python

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