def search(sequence, number, lower=0, upper=None):
if upper is None:
upper = len(sequence)-1
if lower == upper:
assert number == sequence[upper]
return upper
else:
middle = (lower + upper) // 2
if number > sequence[middle]:
return search(sequence, number, middle + 1, upper)
else:
return search(sequence, number, lower, middle)
我问下这里为什么要用len(sequence)-1这句有什么用,谢谢
len(sequence)-1 这是数组的最大下标值
二分法是不断求左右边界的中间值
数组二分查找的左右边界就是数组最大和最小下标值