class Dichotomy:
def __init__(self):
pass
def __call__(self,list,n):
ls = len(list)
left , min , right = 0 , int((ls/2)-1) ,(ls-1)
while left <= right:
if n > list[min]:
left = min
min = int(((right - min)/2)+min)
elif n < list[min]:
right = min
min = int(min/2)
else:
return min
输入:[1, 1, 2, 5, 7, 7, 9, 15],9
输出:6
LOOKUP = Dichotomy()
print(LOOKUP([1, 1, 2, 5, 7, 7, 9, 15],9)) #使用案例