def binary_search(list ,item):
//以下两行low 和hight 用于跟踪要在其中查找的列表部分
low = 0
higth = len(list) - 1
//只要范围没有缩小到只包含一个元素
while low <= higth:
//就检查中间的元素
mid = (low + higth)/2
guess = list[mid]
//找到了元素
if guess == item :
return mid
//猜到的数字大了
if guess > item:
hight = mid -1
//猜到的数字小了
else:
low = mid + 1
//没有指定的元素
return None
//测试代码
my_List = [1,3,5,7,9]
//注意索引开始为0 python 返回None表示没有找到指定元素
print binary_search(my_List,5)
二分查找算法运行时间为:
log2 N ----N代表数组长度
总结:
二分查找的速度比简单查找快得多
O(logn)比O(n)快。需要搜索de元素越多,前者比后者就快得越多
算法运行时间并不是以秒为单位
算法运行时间是以增数的角度度量的
算法的运行时间是以大O表示法表示