我正在尝试使用二分查找来实现解决方案。我有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