1. 二分查找
二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回 null。
一般而言,对于包含 n 个元素的列表,用二分查找最多需要 log2n 步,而简单查找最多需要 n 步。
2. 二分查找代码
# 二分查找
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: # 中间比要找的数大
high = mid - 1
else: # 中间比要找的数大
low = mid + 1
return None
整除运算符
//
可以作用于两个整数或实数,计算结果是带小数的商向下取整(或着说是在数轴上向左取整)之后的结果。如果两个操作数都是整数,得到向下取整之后的整数;如果有实数操作数,得到浮点数形式的整数