Курс 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. Расчет времени выполнения программы
  2. Изучение объектов с помощью dir()
  3. Colorama: окрашивание текста в Python
  4. Метод hash в Python
  5. Разделение строки с регулярными выражениями
  6. Шаблоны Flask: условия и циклы
  7. Создание списка дат
  8. Избегайте двойного подчеркивания
  9. Проверка запуска скрипта или импорта модуля
  10. Подсказки типов в Python
  11. Декораторы в Python
  12. Библиотека funcy: удобные утилиты
  13. Поиск частых элементов в списке
  14. Атрибуты объекта в Python
  15. Перехват исключений в Python
  16. Работа с файлами в Python
  17. Работа с deque из collections
  18. Строковое представление объектов
  19. Обрезка изображения с Pillow
  20. Справка по импортированным модулям
  21. Моржовый оператор в Python 3.8
  22. GitHub в Telegram: подписка на уведомления
  23. Получение текущей даты в Python
  24. Генераторы в Python
  25. Передача параметров в Python
  26. Извлечение новостей с newspaper3k
  27. JMESPath в Python
  28. Разделение строки на подстроки в Python
  29. Наиболее частотные элементы с помощью Counter
  30. Объединение строк с помощью метода join
  31. Вызов внешних программ в Python с помощью sh
  32. Управление фоновыми задачами в Python
  33. Экспорт данных с помощью writefile
  34. Работа с комплексными числами в Python
  35. Введение в PyTorch
  36. Работа с библиотекой xkcd
  37. Псевдонимы в Python
  38. Лямбда-функции в Python
  39. Атрибуты класса и экземпляра в Python
  40. Работа с YAML в Python
  41. Управление контекстом выполнения кода
  42. Метод __iand__ для пользовательских классов
  43. Генерация тестовых данных с factory_boy
  44. Списки в Python: основы
  45. Присвоение и ссылки
  46. Названия переменных

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