首页 > 编程语言 >python - 二分查找

python - 二分查找

时间:2023-06-30 13:12:34浏览次数:38  
标签:二分 lower python bound while 查找

a = [1,3,5,7,9]
# 查找第一个大于等于x的位置
def lower_bound(l, r, x):
    while l <= r:
        mid = (l+r) // 2
        if a[mid] < x:
            l = mid + 1
        else:
            r = mid - 1
    return l

# 查找第一个大于x的位置
def upper_bound(l, r, x):
    while l <= r:
        mid = (l+r) // 2
        if a[mid] <= x:
            l = mid + 1
        else:
            r = mid - 1
    return l

print(lower_bound(0, 4, 5))  # 2
print(upper_bound(0, 4, 5))  # 3

标签:二分,lower,python,bound,while,查找
From: https://www.cnblogs.com/wstong2052/p/17516422.html

相关文章

  • python 报错AttributeError: '_TestResult' object has no attribute 'outputBuffer'
    报错信息: 原因:使用setupclass必须加@classmethod装饰器 解决方案:在setupclass和teardownclass方法前面加@classmethod ......
  • python -m sysconfig快速查看 Python 的环境信息
    C:\Users\daizichuan>python-msysconfigPlatform:"win-amd64"Pythonversion:"3.10"Currentinstallationscheme:"nt"Paths:data="D:\miniconda3"include="D:\miniconda3\Include&quo......
  • python中关于continue(跳过)和 break (终止)的使用方法,易混淆
    在Python中,continue和break是两个控制流语句,用于在循环中改变程序的执行流程。它们的区别如下:continue:当程序执行到 continue 语句时,会跳过当前迭代中剩余的代码,直接进入下一次迭代。换句话说,continue 会终止当前迭代的剩余部分,然后开始下一次迭代。foriinrange(1,......
  • 开发一个通用的python爬虫代码
    以下是一个通用的Python爬虫代码框架,可以作为起点来开发各种不同的爬虫程序:importrequestsfrombs4importBeautifulSoupdefget_html(url):response=requests.get(url)returnresponse.textdefparse_html(html):soup=BeautifulSoup(html,"html.parser......
  • [oeasy]python0069_帮助手册_pydoc_manual_document
    帮助手册回忆上次内容 上次了解了注释注释是为了让程序更可读注释不会影响程序运行速度 注释分为两种单行的以#开头不能是字符串当中的# 多行的三个"三个'  多行注释还有什么特殊功能么?......
  • 二分查找的讲义和视频
     源码下载:https://pan.baidu.com/s/1wMsUK4hZpdttFzOK66n3mQ?pwd=x7a7 提取码x7a7先进入《 视频教程及配套源码》,再进入《C++算法》。在线看视频:https://www.bilibili.com/video/BV1nL411Q7DY/  1.1. 基础1.1.1. 最简单的情况a. 情况简述数组已经按升序排好序......
  • Python的手机测试工具uiautomator2库的实现原理
    使用python通过调试模式测试安卓手机APP,使用uiautomator2库是比较方便的,这个库的源码网址是:https://github.com/openatx/uiautomator2通过阅读源码,大概搞明白了其实现原理,它是通过调用adbutils库,获取UI的hierarchydump数据,然后检索对应的UI节点,计算此节点的UI区......
  • Spark使用Python开发和RDD
    使用PySpark配置python环境在所有节点上按照python3,版本必须是python3.6及以上版本yuminstall-ypython3修改所有节点的环境变量exportJAVA_HOME=/usr/local/jdk1.8.0_251exportPYSPARK_PYTHON=python3exportHADOOP_HOME=/bigdata/hadoop-3.2.1exportHADOOP_CONF_D......
  • 使用 Python WebSSH 从浏览器连接到SSH终端
    IntroductionOrdinarily,youconnecttoanSSHserverusingacommandlineappinaterminal,orterminalemulatorsoftwarethatincludesanSSHclient.Sometools,likePython’sWebSSH,makeitpossibletoconnectoverSSHandrunaterminaldirectlyin......
  • 软件测试|Python科学计算神器numpy教程(二)
    前言上一篇文章我们介绍了numpy的安装和ndarray的部分知识,本篇文章我们来介绍一下numpy的数组的常用属性以及创建数组相关内容。数组常用属性ndarray.shapeshape属性的返回值一个由数组维度构成的元组,比如2行3列的二维数组可以表示为(2,3),该属性可以用来调整数组维度的大小,示......