Курс 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. Определение локальных переменных в Python
  3. Работа с модулем glob в Python
  4. Конкатенация строк в Python
  5. Метод lt для сортировки объектов
  6. Вызов функций по строке в Python.
  7. Python: цикл for и оператор присваивания
  8. Работа с файлами и директориями в Python.
  9. Удаление элементов из списка
  10. Сложные типы данных в Python
  11. Проверка на палиндром
  12. Импорт модулей и пакетов в Python
  13. Удаление дубликатов из списка
  14. Тестирование модели в PyTorch
  15. Переопределение метода __lshift__
  16. Работа с GitHub в Telegram
  17. Lambda Functions in Python
  18. Работа с массивами в Python
  19. Проверка ввода с помощью isdigit
  20. Работа с часовыми поясами в Python.
  21. Установка и использование emoji
  22. Деление в Python
  23. Работа со словарями с defaultdict из collections
  24. Python 3.12: Псевдонимы типов
  25. Инверсия списка и строки
  26. Игра «Виселица» на Python
  27. Генераторы в Python
  28. Лямбда-функции для min/max
  29. Запрос DELETE с библиотекой requests
  30. Оптимизация памяти с __slots__
  31. Красивый вывод списка
  32. Непрерывная проверка в Python
  33. Значения по умолчанию в Python
  34. Работа с файловой системой в Python
  35. Создание виртуальной среды
  36. Тайное преобразование типа ключа
  37. Проверка типов с использованием isinstance
  38. Изменение списка срезами
  39. Модуль pprint
  40. Определение объема памяти объекта
  41. Асинхронное программирование с asyncio
  42. Модуль functools в Python
  43. ROT13 Шифр Цезаря в Python
  44. Добавление цвета в консоли
  45. Отправка HTTP-запросов с User-Agent

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