“”"
0 1 2 3 4 5 6 7 8 9 list = [11,22,33,44,55,66,77,88,99,111] 假设需要:66 第一次:(0 + 9)//2 = 4 ;55 和
66比较,
接下来在55的右边找:66,77,88,99,111 第二次:(5+9)//2 = 7 88和 66
接下来在88的左边找:66,77 第三次:(5+6)//2 = 5 66 == 66,对应下标5开始下标:0开始 慢慢变大 结尾下标:(个数-1) 慢慢减小 “”"
list = [11,22,33,44,55,66,77,88,99,111]
num = int(input("请输入你需要的数字:"))
start = 0
end = len(list) - 1
index = -1
while start <= end :
mid = (start + end) // 2
if list[mid] == num :
index = mid
break
elif list[mid] < num :
start = mid + 1
else :
end = mid - 1
print("%d对应的下标:%d"%(num,index))
结果: