非递归二分法
lst = []
for i in range(1,5000,3):
lst.append(i)
num = int(input('请输入一个数:'))
left = 0
right = len(lst) - 1
count = 0
while left <= right:
count += 1
mid = (right + left) // 2
if num < lst[mid]:
right = mid - 1
elif num > lst[mid]:
left = mid + 1
else:
print('find it')
break
else:
print('can not find it')
print(count)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
lst = [] for i in range(1,5000,3): lst.append(i) num = int(input('请输入一个数:')) left = 0 right = len(lst) - 1 count = 0 while left <= right: count += 1 mid = (right + left) // 2 if num < lst[mid]: right = mid - 1 elif num > lst[mid]: left = mid + 1 else: print('find it') break else: print('can not find it') print(count)