1 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
我查看了您的代碼。并做了一些小的修改:
def median(li):
if not len(li)%2:
i = (((len(li)/2) + (len(li)/2 + 1)) / 2)
return i, li[i]
else:
return i, li[len(li)/2 - 1]
def binarysearch(target, tosearch):
while True:
idx, med = median(tosearch)
if med == target:
return True
elif med < target:
tosearch = tosearch[idx:]
elif med > target:
tosearch = tosearch[:idx]
l = [1, 3, 5, 60, 72, 83, 120, 180]
print binarysearch(5, l)
結(jié)果是:
>>>
True
我不會修復(fù)您代碼的每個方面,但這應(yīng)該使您朝著正確的方向發(fā)展。祝你好運(yùn)。
添加回答
舉報