二分查找法也叫折半查找法,主要处理有序数据的查找问题,其时间复杂度为,优点是比顺序查找要快,缺点是只能处理有序序列。
二分查找法的python实现如下所示:
def binary_search(alist, num):
first = 0
last = len(alist) - 1
while(first <= last):
mid_index = (first + last) // 2 # 折中取整
if alist[mid_index] > num:
last = mid_index - 1 # 要减1
elif alist[mid_index] < num:
first = mid_index + 1 # 要加1
else:
return mid_index # 返回索引
return -1
L = [x for x in range(10)]
num = 11
print(binary_search(L, num))