二分法查找--Python
二分查找算法,最常规的应用就是在一个有序数组中找特定的数。
一般分为四步走:
1. 判定条件为low小于high,low=0, high=size-1
2. mid=(low+high) / 2
3. 如果data[mid]满足条件直接返回,如果满足条件的数据在mid的右边则将low=mid+1,如果满足条件的数据在mid左边则将high=mid-1
4. 根据条件再次判定low,high两个元素是否满足条件
其实整个过程就不断缩小范围的过程。
def binary_search(list, target):
low = 0
high = len(list) - 1
while(low < high):
mid = int((low + high) / 2)
if(target == list[mid]):
return mid
elif(target < list[mid]):
high = mid - 1
else:
low = mid + 1
return -1
if __name__ == '__main__':
list = [1,2,3,4,5,6,7,8,9,10]
index = binary_search(list, 6)
print(index)
浙公网安备 33010602011771号