算法-二分法
算法:解决问题的高效率的方法 1. 找元素是否在一个列表中 普通方法 for i in l : l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for i in l: if num == i: print("找到了:%s" % i) 2.二分法: 1.容器中的数字必须有大小顺序2.依次和中间的数进行比较大小,小于取左,大于取右排序: sort()升序,sort(reverse=Ture)降序,reverse()反转,逆序排列 l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]l.sort() # 重新升序排序 def get_num(l, num): # 取列表中间数索引位置 num_middle = len(l) // 2 # 这个数不在列表中,切到后面就是空列表,空列表就直接返回 if not l: return print("列表中找不到", num) print(l) # 打印每次切片后的列表 # 判断大小 if num > l[num_middle]: # 切片右半部 right_num = l[num_middle + 1:] get_num(right_num, num) elif num < l[num_middle]: # 切去左半部 left_num = l[:num_middle] get_num(left_num,