Курс 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. Измерение времени выполнения кода с помощью time
  2. Профилирование кода на Python
  3. Удаление дубликатов из списка с помощью dict.fromkeys
  4. Получение атрибутов и методов класса
  5. Копирование списков в Python
  6. Генерация UUID в Python
  7. Метод pos в Python
  8. Работа с географическими данными.
  9. Игра «Виселица» на Python
  10. Блок else в циклах.
  11. Экспорт данных с помощью writefile
  12. Pillow: работа с изображениями
  13. Применение функции к списку
  14. Разделение функций на этапы
  15. Преобразование строк в числа в Python
  16. Форматирование объектов с модулем pprint
  17. Операция += для списков
  18. Скачать видео с YouTube
  19. Работа с множествами в Python
  20. Декораторы в Python
  21. Запрос пароля с помощью getpass
  22. Обработка исключений
  23. Глобальные переменные в Python
  24. Модуль array: создание и использование массивов
  25. Генераторные функции в Python
  26. Работа с комбинациями в Python.
  27. Класс-оболочка для словарей
  28. Упрощенный вывод данных в Python
  29. Перевод двоичного кода в целое число
  30. Оператор del в Python
  31. Генерация случайных чисел Python
  32. Создание новых списков в Python
  33. Хешируемые ключи в Python
  34. Создание namedtuple списком полей
  35. Непрерывная проверка в Python
  36. Форматирование вывода списков
  37. Печать календаря в Python
  38. Оператор continue в Python
  39. Искажение имен в Python
  40. Сериализация данных в JSON с помощью json.dumps
  41. List Comprehension Tutorial
  42. Тип CodeType в Python.
  43. Динамическая типизация в Python
  44. Combobox в Tkinter
  45. Доступ к локальным переменным

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