二分查找又称折半查找,优点是比较次数少、查找速度快、平均性能好;其缺点是要求待查表为有序表,且插入删除困难,因此折半查找适用于不经常变动而查找频繁的有序序列。
def search(list, key):
left = 0 # 左边界
right = len(list) - 1 # 右边界
while left <= right:
mid = (left + right) // 2 # 取得中间索引
if key > list[mid]:
left = mid + 1
elif key < list[mid]:
right = mid - 1
else:
return mid
else:
return -1
list = [2,3,4,5,6,7]
print(search(list,2))