Я относительно не знаком с python (3.3), и я просто пытаюсь выполнить двоичный поиск по списку слов и не могу понять, как исправить мои типы операндов, когда дело доходит до циклов через индексы ... Я продолжаю получать TypeError. Cant выяснить каким-либо образом вокруг негоБинарный поиск по строкам
def find(L, target):
start = 0
end = len(L) - 1
while start <= end:
middle = (start + end)// 2
midpoint = L[middle]
if midpoint > target:
end = midpoint - 1
elif midpoint < target:
start = midpoint + 1
else:
return midpoint
Я вызываю функцию так:
L = [ "Брайан", "Мег", "Питер", "Джо", "Stewie", «Лоис»]
находка (L, «Джо»)
бинарный поиск работает только отсортированные списки –
' midpoint' - строка. Что должно делать «midpoint-1'? –
@FernandoMatsumoto может быть опечаткой. Я думаю, он имел в виду «средний - 1», «средний + 1». – jianweichuah