1、思想
对于一个有序数列,每次和中间的一位数值进行比较,如果待查找的数字大于中间值则在中间值的上面查找,如果待查找的数字小于中间值则在中间值下面再查找。
2、实现
def binary_search(elem, my_list):
low = 0
hight = len(my_list) - 1
while low <= hight:
middle = (low + hight) / 2
if elem > my_list[middle]:
low = middle + 1
elif elem < my_list[middle]:
hight = middle -1
else:
return True
return False
if __name__ == '__main__':
my_list = range(1000)
print binary_search(9999, my_list)
网友评论