python中的二分法查找元素
二分法查找指定元素
二分法的前提是该列表必须是有序的,非有序列表需要排序后查找
num_list = [30,11,23,24,35,77,2,13]
list1 = num_list.copy()
list1.sort()
定义4个变量,表示列表两边和中间的索引和要查找的元素
key = 11
left = 0
right = len(list1) - 1
middle = (left + right) // 2
循环比较,查找出目标元素
while left <= right:
if key > list1[middle]:
left = middle + 1
elif key < list1[moddle]:
right = moddle -1
else:
print('{}在列表中'.format(key)
break
else:
print('{}不在在列表中'.format(key)