Sobes.tech
Middle+
43

# Описание на задачата # Дадена е сортирана във възходящ ред последователност от цели числа. # Необходимо е да се реализира функция, която извършва двоично търсене на елемент в тази последователност. # Функцията трябва: # 1. Да приема два аргумента: # - сортиран списък от числа, # - целева стойност за търсене. # 2. Да връща индекса на намерения елемент, ако е наличен. # 3. Да връща -1, ако елементът не е в списъка. # Изисквания # - Решението трябва да е итеративно. # - Важно е да се запази сложността O(log n). # - Кодът трябва да бъде написан на Python 3 и да отговаря на основните принципи на чистия код.

Компаниите бяха попитани
devar

Отговор от AI

sobes.tech AI

python from typing import List

def binary_search(arr: List[int], target: int) -> int: left, right = 0, len(arr) - 1 while left <= right: mid = left + (right - left) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1

Пример использования:

arr = [1, 3, 5, 7, 9]

print(binary_search(arr, 5)) # Выведет 2

print(binary_search(arr, 6)) # Выведет -1