二分找 24 要几步
在排好序的 [13, 15, 17, 23, 24] 里二分查找 24。运行下面这段程序,它数的是"比了几次":
def bsearch_steps(a, target):
lo = 0
hi = len(a) - 1
steps = 0
while lo <= hi:
mid = (lo + hi) // 2
steps += 1
if a[mid] == target:
return steps
if a[mid] < target:
lo = mid + 1
else:
hi = mid - 1
return steps
print(bsearch_steps([13, 15, 17, 23, 24], 24))
全部评论