Advertisement
C3EQUALZ

Бинарный поиск

Nov 24th, 2022 (edited)
579
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.20 KB | None | 0 0
  1. ### Бинарный поиск. Работает только в отсортированном списке. Работает с помощью метода половинного деления. Нужен для поиска индекса какого-то числа. Работает быстрее, чем какая-нибудь функция index(). Условно работает так: берем каждый раз центр отрезка. Если не равняется нашему числу, то смотрим на то, что больше или меньше наш элемент. Коли больше, то уменьшаем верхнюю грань, а в ином случае нижнюю сдвигаем.
  2. def binary_search(search_list, search_value):
  3.     spisok = search_list
  4.     high, low, middle = len(spisok) - 1, 0, 0
  5.  
  6.     while low <= high and middle != search_value:
  7.        middle = (low + high) // 2
  8.        guess = spisok[middle]
  9.        if guess == search_value:
  10.            return middle
  11.        elif guess > search_value:
  12.            high = middle - 1
  13.        else:
  14.            low = middle + 1
  15.     else:
  16.         return 'Элемент в массиве не найден'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement