二分法查找--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)

 

posted on 2018-06-27 10:00  可豆豆  阅读(145)  评论(0编辑  收藏  举报

导航