算法:解决问题的高效率的方法
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, num) else: print("列表中找到了", num) get_num(l, 9)