# 操作对象,排序顺序表---list
alist = [17, 17, 20, 26, 31, 44, 44, 54, 55, 77, 93]
# 递归二分查找
def binary_search(list1, num):
length = len(list1) - 1
# 当元素为空时,没有找到返回False
if length < 0:
return False
mid = length // 2
if list1[mid] == num:
return True
elif num < list1[mid]:
return binary_search(list1[:mid], num)
else:
return binary_search(list1[mid + 1:], num)
# 循环二分查找
def binary_search1(list1,num):
first = 0
last = len(list1)-1
mid = (first+last)//2
while first <= last:
mid = (first + last) // 2
if list1[mid] == num:
return True
elif num < list1[mid]:
last = mid-1
else:
first = mid+1
else:
return False
if __name__ == '__main__':
for i in [10, 23, 44, 56, 24, 78, 100, 17]:
print(binary_search1(alist, i))
```