43.Python:二分法


# 算法:高效解决问题的办法
# 算法之二分法

# 需求:有一个按照从小到大顺序排列的数字列表
# 需要从该数字列表中找到想要的那个数字

nums = [-3, 1, 4, 7, 10, 13, 21, 43, 77, 89, 100]


def b_search(find_num, w_list):
print(w_list)
if len(w_list) == 0:
print('num not in list')
return
w_len = len(w_list) // 2
mid_val = w_list[w_len]

if find_num > mid_val:
w_list = w_list[w_len + 1:]
b_search(find_num, w_list)
elif find_num < mid_val:
w_list = w_list[: w_len]
b_search(find_num, w_list)
else:
print('find', find_num)


b_search(89, nums)
posted @ 2021-07-06 10:38  SEPIA  阅读(61)  评论(0)    收藏  举报