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

python二分法查找

时间:2024-01-14 16:24:19浏览次数:39  
标签:arr right python mid 二分法 查找 ctid conn left

比如要在列表arr中查找x

def f(arr, x):
    left = 0
    right = len(arr)
    while left < right:
        mid = (left + right) //2
        if mid < x:
            left = mid
        elif mid > x:
            right = mid
        else:
            return mid

arr = [ i for i in range(1,100)]
print(arr)
x = 69
y = f(arr, x)
print(y)

二分法查找postgresql数据库某个表的一条tuple

# -*- coding: utf-8 -*-
import psycopg2

conn = psycopg2.connect(host="192.168.137.129", port="1921", database="postgres", user="pg10", password="postgresql@123", )
conn.autocommit=True
cur = conn.cursor()

def get_ctids():
    cur.execute("SELECT ctid FROM test_toast order by ctid")
    rows = cur.fetchall()
    ctid_list = [eval(row[0]) for row in rows]
    cur.close()
    return ctid_list

def f(arr, x):
    left = 0
    right = len(arr)-1
    while left < right:
        mid = (left + right) // 2
        if arr[mid] < x:
            left = mid
        elif arr[mid] > x:
            right = mid
        else:
            return mid

def close_conn():
    conn.close()

if __name__ == '__main__':
    ctid_list = get_ctids()
    x = (1199,140)
    y = f(ctid_list, x)
    print(y, ctid_list[y])
    close_conn()

标签:arr,right,python,mid,二分法,查找,ctid,conn,left
From: https://www.cnblogs.com/jl1771/p/17963834

相关文章

  • 查找指定期限内的数据(Power Query)
    问题:增加数量列,来源于表2,与代码相同行,指定有效期内数据的和。表1:let源=Excel.CurrentWorkbook(){[Name="表1"]}[Content],已添加索引=Table.AddIndexColumn(源,"索引"),插入起始月份=Table.AddColumn(已添加索引,"起始月份",eachDate.Month([价格有效......
  • 查找指定期限内的数据
    问题:表1E列填入数据,来源于表2,与代码相同行,指定有效期内数据的和。函数公式解决:=SUM(XLOOKUP(A2,A$16:A$18,OFFSET(A$16:A$18,,MATCH(TEXT(C2,"m月"),B$15:M$15,),,DATEDIF(C2,D2+1,"m")))) Sum():求和所有提取出来的内容Xlookup():查找A2在A16:A18中,返回Offset指定......
  • [Python急救站]学生管理系统链接数据库
    相信很多人在初学Python的时候,经常最后作业就是完成一个学生管理系统,但是我们来做一个完美的学生管理系统,并且将数据储存到数据库里。我们先看看我们的数据库怎么设置。首先呢,我选择用的是SQLServer然后,我们的数据库名称为学生管理系统 接着,新建一张表,我设置表的名称为学生......
  • Python3环境安装
    Ubuntu下自带Python。python3-Vpython3--versionPython3.10.12sudoapt-getinstallpython3-pippip -Vpip3--versionpip22.0.2from/usr/lib/python3/dist-packages/pip(python3.10)sudoaptinstallpython3.10-venvpython3-mvenvmyenvsourcemyenv/bin/activ......
  • Python Flask Class类默认方法(函数)
    前言全局说明Class类默认方法(函数)一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、Class类默认方法(函数)默认方法(函数)说明备注init类被调用后,自动执行......
  • Python Flask 模块安装、引用模块、启动Web服务方法
    前言全局说明模块安装、引用模块、启动服务一、安装flask模块官方源:pip3installflask==2.3.2国内源:pip3installflask==2.3.2-ihttp://pypi.douban.com/simple/--trusted-hostpypi.douban.com以上二选一,哪个安装快用哪个flask安装时间2023-11更多国内源:......
  • Python教程(24)——全方位解析Python中的装饰器
    Python装饰器是一种特殊的函数,它接收一个函数作为参数,然后返回一个新的函数,用于扩展或修改原始函数的行为。装饰器提供了一种便捷的方式来在不修改被装饰函数源代码的情况下,增加、修改或包装函数的功能。通俗点说就是尽量不修改原有功能代码的情况下,给原有的功能添加新的功能。装......
  • 利用Linux命令高效查找大文件为windows系统瘦身
    Windows系统是大家平时使用得比较多的办公桌面系统,但是,作为一名运维工程师,Linux命令行才是我的首选。最近在折腾Git这款很强大的工具。在瞎折腾的过程中发现一个比较好用的功能:一条Linux命令,找出你系统中的大文件。在此跟大家分享一下。第一步:安装Git考虑到一些平台不支持发链接,在......
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析
    在MongoDB中,我们使用find()和find_one()方法来在集合中查找数据,就像在MySQL数据库中使用SELECT语句来在表中查找数据一样查找单个文档要从MongoDB的集合中选择数据,我们可以使用find_one()方法。find_one()方法返回选择中的第一个文档。示例查找customers集合中......
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析
    在MongoDB中,我们使用find()和find_one()方法来在集合中查找数据,就像在MySQL数据库中使用SELECT语句来在表中查找数据一样查找单个文档要从MongoDB的集合中选择数据,我们可以使用find_one()方法。find_one()方法返回选择中的第一个文档。示例查找customers集合......