将表中间位置(mid)的数字与待查数字(data)做比较,
如果相等:返回true,结束。
如果不相等:则使用中间位置的记录将表分为前后两个子表。
若data>mid 则进一步查找后一个表。
若data<mid 则进一步查找前一个表。
def binary_search(alist, data):
n = len(alist)
first = 1
last = n
while first <= last:
mid = (last + first) // 2
if alist[mid] > data:
last = mid - 1
elif alist[mid] < data:
first = mid + 1
else:
return True
lis = [2, 4, 5, 12, 14, 23,34,50]
if binary_search(lis, 16):
print('存在')
else:print('不存在')
随机查找
import random
a=random.randint(0,100)
print(a)
num=0
if a<39:
for i in range(a,39):
a=a+1
num=num+1
elif a>39:
for i in range(39,a):
a=a-1
num=num+1
else:print(num)