【发布时间】:2017-12-31 20:21:31
【问题描述】:
我正在尝试使用二进制搜索来实现解决方案。我有一个数字列表
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吗? (另外,永远不要命名变量list...它隐藏了Python内置的list。) -
好的,知道了。它希望我在找到值的情况下返回一些东西。
-
你似乎将
l2s与list交织在一起...