# -*- coding:utf-8 -*-
# file:pyBinarySearch.py
#
def BinarySearch(l,key):
low = 0
hight = len(l) - 1
i = 0
while ( low <= hight ):
i=i+1
mid = (hight+low)//2
if (l[mid]<key):
low=mid+1
elif (l[mid]>key):
hight=mid-1
else:
print('use %d time(s)' %i)
return mid
return -1
if __name__ == '__main__':
l=[1,5,6,9,10,51,62,65,70]
print(BinarySearch(l,5))
print(BinarySearch(l,10))
print(BinarySearch(l,65))
print(BinarySearch(l,70))
本代码取自python宝典。
运行脚本输出如下:
use 2 time(s) 1 use 1 time(s) 4 use 3 time(s) 7 use 4 time(s) 8