题目
[2,5,6,8,12,15,17,23,27,31,39,40,45,56,79,90]
在这个数组中寻找。输入一个数,给出这个数在该数组中的下标。
答案:
arr = [2,5,6,8,12,15,17,23,27,31,39,40,45,56,79,90]
l,r = 0,len(arr)-1 #初始化左右指针
n = int(input()) #输入关键字
while l <= r: #循环条件,判断是否存在合理的查找范围
mid = (l+r)//2 #求出左右指针的平均数
if arr[mid] < n: #折半缩小查找范围
l = mid+1
elif arr[mid] > n:
r = mid-1
else: #如果mid指向的元素与关键字相等,直接输出下标并跳出循环
print(mid)
break
#while循环自然结束,说明没有查找到与关键字相等的元素
print(-1)