二分查找

二分查找要求数组必须是有序的才可以

原理:

把取数组 list 的中间值 list[mid] 和目标值 x 进行对比,如果大于目标值则取mid左边的部分list[:mid-1],反之则取右边的部分list[:mid+1:],直至找到目标值,返回mid ,若不存在返回False。

采用递归算法

def Binary_Search(nums,x,l,r):
    mid=(l+r)//2
    if l<r:
        if nums[mid]>x:
            return Binary_Search(nums,x,l,mid-1)
        elif nums[mid]<x:
            return Binary_Search(nums,x,mid+1,r)
        else:
            return mid
    else:
        return False

 

posted @ 2019-08-14 15:51  扛把子毛  阅读(80)  评论(0编辑  收藏  举报