我正在学习二分查找,样例代码中使用了 "low = mid + 1 and high = mid - 1
",但我不明白为什么我们不能使用 "low = mid and high = mid
"?
def binarysearch(sequence, value):
lo, hi = 0, len(sequence) - 1
while lo <= hi:
mid = (lo + hi) // 2
if sequence[mid] < value:
lo = mid + 1
elif value < sequence[mid]:
hi = mid - 1
else:
return mid
return None
my_list = [1, 3, 5, 7, 9]
binarysearch(my_list, 3)