二分查找又称折半查找,优点是比较次数少、查找速度快、平均性能好;其缺点是要求待查表为有序表,且插入删除困难,因此折半查找适用于不经常变动而查找频繁的有序序列。
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))
来源:https://www.cnblogs.com/pp8080/p/12258480.html