"""
"""
"""
算法之二分法:
1: 算法 解决问题的高效方法
f = [1,3,4,5,6,7,8,9]
我想取出这个最大的数字9怎么取出是不是可以通过for循环取出来
如:num = 9
for i in f: 注释: 通过for循环吧f的值一个一个的给i
if num==i: 如果当i==9时 那么print 打印findit 表示找到了
print("find it")
二:二分法 容器类型里面的数字必须有大小顺序
"""
f = [1,3,4,5,6,7,8,9]
num = 10
def get_num(f,num):
if not f:
print("你说输入的找不到")
return
print(f)
middle_index = len(f) // 2
# 判断num跟middle_index对应的数字的大小
if num > f[middle_index]:
# 切取列表右半部分
num_right = f[middle_index + 1:]
# 再递归调用get_num函数
get_num(num_right, num)
elif num < f[middle_index]:
# 切取列表左半部分
num_left = f[0:middle_index]
# 再递归调用get_num函数
get_num(num_left, num)
else:
print('find it', num)
通过切分 吧 列表的值 从中间劈开 然后判断 是否在里面 看是在左边还是在右边 然后重复这样的操作 即可 从而达到最后的目的