刚开始学python,看到二元查找,看不懂了,求大神解答!
书上是这么些的:
def search(sequence,number,lower,upper):
if lower==upper:
assert number==sequence[upper]
return upper
else:
middle=(lower+uppper)//2
if number>sequence[middle]:
return search(sequence,number,middle+1,upper)
else:
return search(sequence,number,lower,middle)
提问:
1.第一部分,返回的是sequence列表中upper这个数么?
2.写完之后,像书上写的输入seq=[4,8,34,67,95,100,123],然后search(seq,34),但是说缺少两个变量
3.还有提示错误out of range
能有大神帮忙解释一下吗,谢谢啊!在线等~~