模板
def bi_search(num_list, val):
if len(num_list) == 0:
return -1
l, h = 0, len(num_list)-1
while l+1 < h:
mid = (l+h) // 2
if val == num_list[mid]:
return mid
if val < num_list[mid]:
h = mid
if val > num_list[mid]:
l = mid
if val == num_list[l]:
return l
if val == num_list[h]:
return h
return -1
模板分为五步:
- 空列表判断
- 循环状态初始化
- 循环的执行条件(当碰到边界时跳出循环)
- 循环内部情况
- 边界情况
网友评论