Курс 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. Установка и обучение ChatterBot
  3. Замеры производительности в Python
  4. Метод rxor для операции побитового исключающего «или»
  5. Библиотека Emoji: использование смайлов в Python
  6. Очистка списка от False, None, 0, «»
  7. Скрытие вывода данных
  8. Заказ карты Тинькофф Black
  9. Pretty-printing JSON в Python
  10. Конвертация изображений в PDF
  11. Обмен данными с asyncio.Queue
  12. Создание комплексных чисел
  13. Оператор break в Python
  14. Создание функций высшего порядка
  15. Работа с файловой системой в Python
  16. Объединение словарей в Python
  17. Метод __irshift__ для побитового сдвига вправо
  18. Условные выражения в Python
  19. Lambda-функция в Python: использование с map() и sum()
  20. Работа с процессами в Python
  21. Удаление дубликатов с помощью множеств
  22. Протокол управления контекстом
  23. Модуль os: работа с файлами и папками
  24. Подсчет частотности элементов в Python
  25. Поиск самого частого элемента
  26. Работа с областями видимости переменных
  27. Python itertools combinations() — группировка элементов
  28. Наиболее частотные элементы с помощью Counter
  29. Ускорение кода с помощью векторизации
  30. Итерация по итерируемым объектам
  31. Разделение строки в Python
  32. Удаление элементов из списка в Python.
  33. Поиск индекса элемента
  34. Функция enumerate в Python
  35. Python groupby() из itertools: работа с повторяющимися элементами
  36. Многопроцессорное программирование в Python
  37. Расчет времени выполнения программы
  38. Конкатенация строк с помощью join()
  39. Форматирование строк в Python
  40. Циклы for в Python
  41. Необязательные аргументы в Python
  42. Установка Git и AWS CLI
  43. Роль ключевого слова self
  44. Python 3.12: переиспользование кавычек
  45. Курс Data Scientist в медицине
  46. Возврат значений из генератора
  47. Хеширование паролей с использованием salt

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