函数输入值
li=[1,2,3,4,5,6,7,8,9]#输入的集合
val=4#要查找的值
函数内部值
left=0#代表集合中第一个值的位置
right=len(li)-1#代表集合中最后一个值的位置
mid=0#分割时记录中间位置
对集合li进行对半分割
集合分为1-5片区(红色片区)、5片区(蓝色片区 )、5-9片区(黄色片区)
经过分割后将val的值分厂三个片区
1.红色片区
val取值 1<=val<5
2.蓝色片区
val取值 val=5
3.黄色片区
val取值5
分割完后对三个区域分别判断即可
操作一:排除蓝色片区 (val=5)是否是想找的值
if val==li[mid]:
return mid
操作二:排除黄色区是否在存在val
if li[mid]
操作三:排除红色区是否在存在val
if li[left]<=val
def lin(li,val):
left=0#代表集合中第一个值的位置
right=len(li)-1#代表集合中最后一个值的位置
while left<=right:
mid=(left+right)//2#将集合分割,mid分割时记录中间位置
if li[mid]==val:#操作一:排除蓝色片区 (val=5)是否是想找的值
print(mid)
return mid
elif li[mid]


