def binary_search_2(arr,item):
n = len(arr)
mid = n//2
while mid>=0 and mid<n-1:
if arr[mid]==item:
return True
elif arr[mid]>item:
mid = mid//2
else:
mid = (mid+n)//2
if arr[-1]==item:
return True
return False
#递归转非递归的关键1循环2mid值的转变
if __name__ == '__main__':
li = [1,3,6,8,10,12,14,16]
print(binary_search_2(li,1))
print(binary_search_2(li,14))
print(binary_search_2(li,98))
时间O(logn)