python--二分法的学习

#算法:是高效解决问题的办法
#算法之二分法

#在列表中寻找自己想要的那一个值

# l=[11,22,33,44,66,88,99,111,333,555]
# need_value=111
# for i in l:
# if i==need_value:
# print("find it")
# break

#方法2:
# def binary_search(need_value,l)
# mid_value=中间的值
# if need_value > mid_value:
# 列表=列表的右半部分
# 本身代码(列表)
# else:
# need_value < mid_value:
# 列表=原列表的左半部分
# 本身代码(列表)
# else:
# 找到了
#

def binary_search(need_value,l):
mid_index=len(l)//2
mid_value=l[mid_index]
if need_value > mid_value:
#列表=列表切片右半部分
l=l[mid_index+1:]
print(l)
binary_search(need_value, l)
#本身代码(列表)
elif need_value < mid_value:
l=l[ :mid_index]
print(l)
#列表=原列表的左半部分
#本身代码(列表)
binary_search(need_value, l)
else:

print("find it")

l=[11,22,33,44,66,88,99,111,333,555]
need_value=111

binary_search(need_value,l)
posted @ 2020-12-20 11:47  正霜霜儿  阅读(121)  评论(0编辑  收藏  举报