二分查找
def binary_search(list,want):
# 首先确定查找队列的首位,以及中间数的位置
min = 0
max = len(list)-1
#首位不一致说明有中间数
while min <= max:
mid = int((min + max) // 2)
if list[mid] == want:
return mid
if list[mid] < want:
min = mid + 1
else:
# list[mid] > want
max = mid - 1
if __name__ == "__main__":
list = [1,3,4,5,8,11,23,28,31,33,35,37,46,55]
index = binary_search(list,31)
print('查找的索引是{},查找的对应数是{}'.format(index,list[index]))

浙公网安备 33010602011771号