二分查找
注意:
- input默认输入一个str类型,需要用int来进行转化
- / 总是返回真正的商,而且不管除数与被除数的数据类型,返回的都是浮点型
- // 地板除法:意思是不管结果中有没有小数,都直接舍去,返回整数部分
- 注意二分查找的low和high的取值
list = [1,2,5,6,7,9]
#input默认输入一个str类型,需要用int来进行转化
guess = int(input('输入猜测的数字:'))
def binary(list ,guess):
low = 0
high = len(list) - 1
while low <= high:
#/ 总是返回真正的商,而且不管除数与被除数的数据类型,返回的都是浮点型
#// 地板除法:意思是不管结果中有没有小数,都直接舍去,返回整数部分
mid = (low + high) // 2
if list[mid] == guess:
return mid
elif list[mid] < guess:
low = mid + 1
elif list[mid] > guess:
high = mid - 1
return None
print(binary(list,guess))