我正在嘗試使用二分查找來實現解決方案。我有Python中的二進制搜索實現
list = [1, 2, 3, 4, 6]
value to be searched = 2
我寫了這樣的事情
def searchBinary(list, sval):
low = 0
high = len(list)
while low < high:
mid = low + math.floor((high - low)/2)
if list[mid] == sval:
print("found : ", sval)
elif l2s[mid] > sval:
high = mid - 1
else:
low = mid + 1
,但是當我試圖實現這一點,我得到這樣的錯誤號的列表:索引超出範圍。請幫助確定問題。
你爲什麼不返回任何東西?編輯:Nvm,你打印出來。 –
什麼是'l2s'?你的意思是'列表'嗎? (另外,永遠不要命名一個變量'list' ...它隱藏了Python內建的'list'。) – smarx
好吧,明白了。它希望我能夠回報一些事情以防我發現價值。 – user3784294