def binarysearch(somelist,target):
lowindex=0
highindex=len(somelist)-1
while somelist[lowindex] != target and somelist[highindex] != target:
midindex = (highindex+lowindex) // 2
if target == somelist[midindex]:
print(somelist[midindex])
elif target < somelist[midindex]:
highindex=midindex-1
elif target > somelist[midindex]:
lowindex= midindex + 1
return -1
testlist=[0,1,2,8,13,17,19,32,42,15]
(binarysearch(testlist,2))
有人知道什麼是錯的代碼似乎沒有工作二進制搜索在Python不工作
你的代碼打印的東西只有當目標在'midindex'找到。如果在'lowindex'或'highindex'找到'while'循環就停止。 – nsilent22
爲了練習,我假設你正在編寫自己的二進制搜索。如果不是,則使用內置設施代替: '如果目標在某個列表中: print(target) else: return -1' – BoarGules