改成 `lo <= hi` 呢
同一段代码,只把循环条件改成 lo <= hi。运行它:
def bfind(a, target):
lo = 0
hi = len(a) - 1
while lo <= hi:
mid = (lo + hi) // 2
if a[mid] == target:
return mid
if a[mid] < target:
lo = mid + 1
else:
hi = mid - 1
return -1
print(bfind([13, 15, 17, 23, 24], 24))
全部评论