python排序序列的二进制搜索

binary-search的Python项目详细描述


python中的二进制搜索

对已排序序列(列表、元组)进行二进制搜索,以获取第一个元素>=> 一个值(类似于C++的^ {< CD3> }和^ {< CD4}})。

对于typing模块需要python>;=3.5,对于enum模块需要>;=3.4,但是您可以很容易地 从binary_search/__init__.py中提取search函数(如果需要较低版本)。

安装

  1. pip install binary-search

用法

有关更多示例用法,请参见tests.py

importbinary_searchasbssorted_sequence=(2,5,7,9)a=bs.search(sorted_sequence,5)print(a)# 1 - the index of the first element >= 5b=bs.search(sorted_sequence,6)print(b)# 2 - the index of the first element >= 6 (element 2 with value 7)

您还可以使用与sorted

相同的自定义键。
importbinary_searchasbsimportrandom# sequence of 10 random pairs of integerssequence=[(random.randint(),random.randint())for_inrange(10)]# sort and search just using the first integerkey=lambdapair:pair[0]sorted_sequence=sorted(sequence,key=key)bs.search(sorted_sequence,[5,None],key=key)

开发和测试

  1. 分叉存储库
  2. 克隆您的叉子
  3. 以可编辑模式安装pip install -e .
  4. 进行任何更改并将新测试添加到tests.py
  5. 运行pytestpython -m pytest
  6. 承诺并推到叉子上
  7. 发出拉取请求(将分叉合并回主回购)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Eclipse中使用多个调用在一行上打印java   javajackson序列化问题。只有同一实体的第一个对象可以很好地序列化   Java中Deflate函数的等价充气   使用customlitview的java Android actionbar搜索   java“<T>T get()”是什么意思?(它有用吗?)   目标c使用CommonCrypto使用AES256加密,使用OpenSSL或Java解密   java在运行时更新资源文件   fileinputstream在java中访问并将数据写入现有文件   带集群的java Android Mapbox我希望每个功能都有不同的标记图像   java JDK8>JDK10:PKIX路径生成失败:SunCertPathBuilderException:找不到请求目标的有效证书路径   java使用Hk2生成具有指定构造函数参数的实例   为什么这个系统。出来Java中的println()打印到控制台?   java目录和文件名连接不起作用   使用mockito和通配符绘图的java