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)
浙公网安备 33010602011771号