两种方式实现:
二分查找的前提是要查找的列表已经是排过序的列表
1、使用循环方式
1
2
3
4
5
6
7
8
9
10
11
12
13 def binary_find(rlist, data):
len_ = len(rlist)
left = 0
right = len_ - 1
while left < right:
mid = (left + right) / 2
if rlist[mid] > data:
right = mid - 1
elif rlist[mid] < data:
left = mid + 1
else:
return True
return False
2、递归实现
1 |
def binary_recursion(rlist, data): |
近期评论