Курс 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
  2. Равенство и идентичность в Python
  3. Перевернуть список в Python
  4. Генерация фальшивых данных с Faker
  5. Основные методы NumPy
  6. Именованные срезы в Python
  7. Копирование файлов с shutil()
  8. Отладка утечек памяти в Python
  9. JMESPath в Python
  10. Скрытие вывода данных
  11. Решатель судоку на Python с pygame
  12. Поиск простых чисел
  13. Генераторы в Python
  14. Проверка версии Python
  15. Python groupby() из itertools: работа с повторяющимися элементами
  16. Модуль subprocess: запуск внешних команд
  17. Удаление символов новой строки в Python.
  18. Python UserString — создание подклассов строк
  19. Запуск внешних программ с subprocess
  20. Логирование в Python
  21. Оформление кода на Python
  22. Обработка StopIteration в Python
  23. Замена текста в Python
  24. Хэш-функции в Python
  25. Замена переменных в Python
  26. Фильтрация последовательности
  27. Разделение строки на пары ключ-значение.
  28. Создание словарей с defaultdict
  29. Оформление кода по PEP 8
  30. Работа с изображениями PIL
  31. Сравнение объектов в Python
  32. Метод __getitem__ в Python
  33. Метод join() для объединения элементов
  34. Defaultdict в Python
  35. Генератор чисел Фибоначчи
  36. Транспонирование матрицы в Python
  37. Возврат нескольких значений
  38. Получение текущей даты и времени с помощью datetime
  39. Оператор in для Python
  40. Разделение строки с помощью re.split()
  41. Преобразование данных в Python
  42. Преобразование Excel в PDF с Spire.XLS
  43. Использование type hints
  44. Форматирование заголовков в Python
  45. Дизассемблирование Python кода
  46. Глобальные переменные в Python

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