Курс 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. Работа с временем в Python
  2. Python и Юникод: работа с цифрами
  3. Конкатенация строк с методом join()
  4. Методы работы со строками в Python
  5. Получение списка кортежей из словаря
  6. Сохранение Unicode в JSON
  7. Генерация QR-кодов с библиотекой qrcode
  8. Тестирование модели в PyTorch
  9. Оптимизация интернирования строк
  10. Освобождение памяти в Python
  11. Проверка элемента в множестве.
  12. Открытие, чтение и закрытие файла
  13. Библиотека Chartify: руководство
  14. Удаление символа из строки
  15. Создание задания в Cron
  16. Оператор «моржа» (Walrus Operator)
  17. Основные операции с Numpy
  18. Потоковый ввод в Python
  19. Чтение бинарного файла в Python.
  20. Повторение и перенос строки
  21. Разделение строки с помощью split()
  22. Управление памятью в Python
  23. Лямбда-функции в defaultdict
  24. Просмотр атрибутов и методов класса
  25. Python: отсутствие точек с запятыми
  26. Получение имени функции с помощью inspect
  27. Профилирование данных с Pandas
  28. Область видимости переменных в Python
  29. Модуль itertools: эффективная работа с итераторами
  30. Метод join() для объединения строк
  31. Поиск индекса элемента в списке
  32. Отношения подклассов в Python
  33. Декораторы в Python
  34. Управление виртуальными окружениями в Python
  35. Добавление элементов в список
  36. Работа с словарями в Python
  37. Класс UserDict: дополнительная функциональность
  38. Вывод с переменной через запятую
  39. Сортировка в Python
  40. Бесконечная проверка в Python
  41. Оптимизация параметров в Python
  42. None в Python: использование и особенности
  43. Обработка исключений в Python 3
  44. Транспонирование матрицы
  45. Работа с областями видимости переменных

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