Как я могу заставить этот бинарный поиск работать? - PullRequest
0 голосов
/ 11 марта 2020

выдаёт мне ошибку в этом коде: c - это список или массив // k = число, которое мы хотим проверить

def binary_search(c,k):
    low = 0
    high = len(c) - 1
    while low <= high:
        mid = floor((low + high) / 2)
        if c[mid] == k:
           return True
        elif c[mid] > k:
           high = mid - 1
        else:
           low = mid - 1
    return False 

И это была ошибка: File "C:/Users/JJ/OneDrive - ISCTE-IUL/EDA/Aula3.py", line 108, in binary_search mid = floor((low + high) / 2) KeyboardInterrupt

Не знаю, почему это происходит, поэтому мне нужна вся помощь, которую я могу получить. Спасибо за ваше время

1 Ответ

1 голос
/ 11 марта 2020

В вашем алгоритме есть ошибка. Всякий раз, когда вы ищете число, которого нет в списке, ваш алгоритм будет продолжать работать бесконечно l oop.

...