写点二分算法的吧(1) python 版

二分查找是一种减而治之的思想方法,通过缩小区间范围来降低时间复杂度

二分查找有很多模板

# 开区间
def bSearch(arr,t):
    l,r = -1,len(arr)
    while l + 1 < r:
        mid = (l + r) // 2
        if arr[mid] < t:
            l = mid
        else:
            r = mid
    return r

# 闭区间
def bSearch(arr,t):
    l,r = 0,len(arr)-1
    while l <= r:
        mid = (l + r) // 2
        if arr[mid] < t:
            l = mid + 1
        else:
            r = mid - 1
    return l

# 左闭右开区间写法
def bSearch(arr,t):
    left, right = 0, len(nums) 
    while left < right:
        mid = (left + right) // 2
        if nums[mid] < target:
            left = mid + 1 
        else:
            right = mid
    return left  


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值