算法-二分法

匿名 (未验证) 提交于 2019-12-02 23:48:02

算法:解决问题的高效率的方法

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)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!