Курс 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. Метод Enumerate() для списков
  2. Введение в Python
  3. Работа с областями видимости переменных
  4. Работа со словарями с defaultdict из collections
  5. Руководство по Pymorphy2
  6. Mad Libs Generator
  7. Управление доступом к модулю
  8. Создание обратного итератора
  9. Искажение имен в Python
  10. Форматирование строк в Python
  11. Управление фоновыми задачами в Python
  12. Установка и использование Telegram API в Python
  13. Хранение данных
  14. Сортировка с помощью параметра key
  15. Операции с кортежами
  16. Импорт классов из другого файла
  17. Значения по умолчанию в Python
  18. Работа с геоданными с помощью geopy
  19. Функции с дополнением
  20. Оператор zip в Python
  21. Упрощение условных выражений с тернарным оператором
  22. Изменение регистра данных
  23. Добавление элемента к кортежу
  24. Обновление множества в Python
  25. Оптимизация строк в Python
  26. Создание словарей с defaultdict()
  27. Функция enumerate в Python
  28. Регистрация на курсы SF Education
  29. Итерация по итерируемым объектам
  30. Группировка элементов Python
  31. Генератор списка с условием if
  32. Утечки переменных цикла в Python 3.x
  33. Метод join для наборов
  34. Вычисление логарифмов в Python
  35. Numpy: разбиение массивов
  36. Python enumerate() функции
  37. Работа с файловой системой в Python
  38. Условное добавление элементов в список
  39. Создание генераторов
  40. Форматирование строк с помощью f-строк
  41. Управление контекстом выполнения кода
  42. Скрытие вывода данных
  43. Метод invert для побитового отрицания
  44. Преобразование документов в PDF с помощью Spire.Office
  45. Функция sleep() в Python
  46. Класс Counter() для подсчета элементов

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