二分查找是一种算法,其输入是一个有序的元素列表,如果要查找的元素包含在列表中,二分查找返回去位置,否则返回Null。二分查找的时间复杂度为。如果列表包含1024个元素,最多需要查找10个元素。(因为
)。
Python实现:
def binary_search(list, item): #有序数组
low=0
high=len(list)-1
while low<=high:
mid=(low+high)//2 #如果(low+high)不是偶数,自动将mid向下取整
guess=list[mid]
if guess==item:
return mid
if guess>item: #猜的数字大了
high=mid-1
else: #猜的数字小了
low=mid+1
return None
参考资料:
1. 《算法图解:像小说一样有趣的算法入门书》. [美] Aditya Bhargava 著,袁国忠 译.