01.二分查找

1.条件

不是所有的数据类型都可以应用二分查找法,需要满足以下条件
  • 是一个有序序列(索引数组)
  • 已经排序好的序列

2.查找原理

在一个有序序列中查找一个指定的数,首先和这个序列的中间数相比,如果相等就找到返回。如果你这个中间数小,即在序列左边找,如果比中间数大就从右边查找,直到找到或未找到返回。

3.实现代码

 1 #Python 二分查找
 2 def binary_search(list,item):
 3     low = 0
 4     hight = len(list) - 1
 5 
 6     while low <= hight:
 7         mid = (low + hight) // 2
 8         gess = list[mid]
 9         if gess == item:
10             return mid
11         elif gess > item:
12             hight = mid - 1
13         else:
14             low = mid + 1
15     return None
16 
17 res = binary_search([1,4,6,8,9],9)
18 print(res

运行结果:

1 #运行结果
2 4
 
 

猜你喜欢

转载自www.cnblogs.com/kadycui/p/9240206.html