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)
posted @ 2019-01-14 18:23  爬呀爬Xjm  阅读(175)  评论(0编辑  收藏  举报