二分法的条件
- 元素必须有序
如果元素包含在列表中,二分查找其返回的位置,否则返回null。
工作原理
- 二分法就相当于我们在电视上看到的{猜物品价格}的节目,当你每次猜测,我们就会返回一个结果,告诉你高了,或者低了。然后会根据我给出的结果,在缩小范围,二分查找。
算法效率
- 二分法查找最多需要log 2 n
- 240000个词大概需要18步。
代码示例
def binary_search(list,item):
low = 0
high = len(list) -1
while low<= high:
mid = (low + high)/2; //二分查找
guess = list[mid];
if guess == item: //猜到返回
return mid
if guess > item: //中间位置大,最高到中间位置-1结束
high = mid -1
else: //中间位置小,从中间位置开始查找
low = mid +1;
return None
运算时间
对数时间(log时间)