003---二分查找
什么是二分查找?
- 特点:二分查找又称折半查找。每次查找都会使数目减少一半
- 优点:比较次数少、查找速度快
- 缺点:必须是有序的
1 def binary_search(l1, val): 2 """ 3 二分查找 4 :param l1: 待查列表 5 :param val: 待查元素 6 :return: 返回索引 7 """ 8 9 # 左边起始位置索引和右边结束位置索引 10 left, right = 0, len(l1) - 1 11 12 while left <= right: 13 mid = (left + right) // 2 14 if val > l1[mid]: 15 left = mid + 1 16 elif val < l1[mid]: 17 right = mid -1 18 else: 19 return mid 20 res = binary_search(l1,55) 21 print(res)