Python数据结构与算法分析 第五章 搜索和排序

2023-11-18

有序列表的顺序搜索


二分查找

# 二分搜索
sou=[17,18,22,28,38,78,89,99,100]
def binarysearch(list,item):
    first=0
    last=len(list)-1
    while first<=last:
        minpoint=(first+last)//2
        #print(minpoint,list[minpoint])
        if list[minpoint]==item:
            return minpoint
        else:
            if list[minpoint]>item:
                last=minpoint-1
            else:
                first=minpoint+1
    return -1
print(binarysearch(sou,17))
print(binarysearch(sou,11))

输出:
4 38
1 18
0 17
0
4 38
1 18
0 17
-1

哈希hash

欧拉筛法

# 欧拉筛
# n,q=list(map(int,input().split()))
n=int(input())
max=n
result=[]
panduan=[1]*max
for i in range(2,max):
    if panduan[i]:
        result.append(i)
    for e in result:
        if e*i>=max:
            break
        panduan[e*i]=0
        if i%e==0:
            break
print(len(result))
# for i in range(q):
#     print(result[int(input())-1])
print(result)

12
5
[2, 3, 5, 7, 11]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python数据结构与算法分析 第五章 搜索和排序 的相关文章

  • Python 中的字节数组

    如何在 Python 中表示字节数组 如 Java 中的 byte 我需要用 gevent 通过网络发送它 byte key 0x13 0x00 0x00 0x00 0x08 0x00 在Python 3中 我们使用bytes对象 也称为s
  • JavaScript 相当于 Python 的参数化 string.format() 函数

    这是 Python 示例 gt gt gt Coordinates latitude longitude format latitude 37 24N longitude 115 81W Coordinates 37 24N 115 81W
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • 如何在 Python 3 中循环遍历集合,同时从集合中删除项目

    这是我的情况 我有一个list set 哪个并不重要 movieplayer我想调用的对象 preload 功能开启 该预加载函数可以立即返回 但希望将来返回一点 我想存储这个电影播放器 集合 表明它们尚未预加载 然后循环它们 调用prel
  • 如何将 self 传递给装饰器?

    我该如何通过self key下面进入装饰器 class CacheMix object def init self args kwargs super CacheMix self init args kwargs key func Cons
  • Python Fabric - 未找到主机。请指定用于连接的(单个)主机字符串:

    如何获取 找不到主机 请指定用于连接的 单个 主机字符串 面料如何解决 def bootstrap host ec2 54 xxx xxx xxx compute 1 amazonaws com env hosts host env use
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • Python 惰性迭代器

    我试图了解迭代器表达式如何以及何时被求值 以下似乎是一个懒惰的表达 g i for i in range 1000 if i 3 i 2 然而 这个在构造上失败了 g line strip for line in open xxx r if
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • SOLOv2 学习笔记

    博客原文 https blog csdn net weixin 44270815 article details 105283301 模型下载教程 https blog csdn net weixin 44270815 article de
  • Win64安装cx_Oracle过程

    学习python过程中 因需要连接oracle数据库 所以要安装cx Oracle 我的电脑是WIN64 python是2 7版本 本地oracle client是32位的 安装过cx Oracle 5 2 1 11g win amd64
  • js实现word转化为html

  • windows8.1 vs2015 dlib库cpu 版本编译以及应用 library is 90, caller expects 80

    近期由于要做一个关于人脸计数的项目 因此对dlib库进行了编译和使用 其中遇到了不少问题 下面请听我一一道来 第一步 从dlib官网下载dlib源码 链接地址 https github com davisking dlib 第二步 采用cm
  • PrimeTime中的DMSA

    第一次尝试使用PT的DMSA 步骤存在太多的弯弯绕绕了 这里记录一下 一 什么是DMSA 在PT中 我们将一种operating mode 如FUNC DFT等 和一种operating condition 如WC WCZ AVS等 的组合
  • SQLDEVELOPER启动警告 - 无法安装某些模块: oracle.jewt_core - org.netbeans.InvalidException: Netigso

    https bbs csdn net topics 390721236 page 1 SQL Developer第一次启动后没问题 但是第二次启动后就报错 根据如下步骤可以解决 1 Go to C Users USERNAME AppDat
  • C#操作MongoDB,看我这一篇就够了!

    一 准备工作 工欲善其事必先利其器 首先呢咱们得下载好C 程序里面可以驱动mongodb的组件 走起官网 C 操作mongodb组件下载 菜鸟教程也上一上 mongodb菜鸟教程 dll下载下来之后有这几个 都引用上 不要省 哈哈 个人还是
  • 算法学习(四)查找问题

    一 查找问题通常有2类 1 查找有无 元素a是否存在 set 集合 2 查找对应关系 键值对应 元素a出现了几次 map 字典 leetcode349 两个数组的交集 给定两个数组 编写一个函数来计算它们的交集 输出结果中的每个元素一定是唯
  • 11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵

    矩阵 向量是对数的拓展 一个向量表示一组数 矩阵是对向量的拓展 一个矩阵表示一组向量 1 2
  • win10+pytorch(gpu)下载安装中踩的坑,下载安装全流程

    整个下载安装的流程如下 1 查看自己的电脑显卡是否支持gpu 具体查看方式可以参考我的这一篇文章 CUDA cuDNN下载安装 配备GPU环境 九九19496的博客 CSDN博客 但先不要下载cuda和cudnn 2 确定自己想要的pyto
  • TCP流式服务的粘包问题及解决方法

    TCP流式服务的粘包问题 有可能将两次send的内容合并在一起被接受端收到 解决方法 发送定长包 包层加入 r n标记 FTP协议就是这么做的 但这种方案存在的问题就是 如果数据正文存在同样的字符 就会被误判为消息的边界 包头加上包体长度
  • requery与ajax,总结一下query中ajax的几种方法

    1 a中比需抖接朋功要朋插jax ajax type POST 提交数据的类型 POST GET url testLogin aspx 提交的网址 提交的数据 data Name sanmao Password sanmaoword 返回数
  • 职高计算机班主任工作计划,教学工作计划:高职班主任工作计划

    作为高职院校各专业的班主任 面临着教学理念和班级管理双重压力 高职班主任工作计划不仅要从学生学习上进行合理计划 更要从学生思想教育上进行计划 以下是小编整理的高职班主任工作计划 欢迎大家参阅 高职班主任工作计划 装潢专业 经过一年半的锻炼与
  • java对list集合进行分页

    1 计算页数 List
  • CAN总线之错误检测以及错误状态简介

    CAN总线之错误检测以及错误状态简介 1 CAN错误检测特点简介 1 1错误检测机制 2 错误 2 1错误状态的种类 本文参考瑞萨的 CAN总线入门 周立功的 现场总线CANopen设计与应用 1 CAN错误检测特点简介 错误检测是CAN的
  • java发邮件

    1 设置邮箱smtp服务 获取第三方授权码 mailHost smtp 163 com mailFrom xxx 163 com mailUser xxx mailPassword xxxpassword 主题 StringBuffer s
  • 本土化的ChromeOS-系统推荐

    系统推荐 今天推荐一个本土化的ChromeOS 可以安装安卓软件和Play商店的软件 不需要拥有谷歌账号即可使用 只需要创建fydeOS的账号就可以了 相比起其它的第三方ChromeOS操作系统 它开放的东西更多 官方也有适配一些第三方设备
  • STM32速成笔记—Flash闪存

    文章目录 一 Flash简介 二 STM32F1的Flash 三 Flash操作步骤 四 程序设计 4 1 读取数据 4 2 写入数据 不检查 4 3 写入数据 检查 五 注意事项 一 Flash简介 快闪存储器 flash memory
  • 2023前端面试题及答案整理(JS面试题)

    ES6 let const 全局作用域中 用 const 和 let 声明的变量不在 window 上 那到底在哪里 如何去获取 ES6规定 var 命令和 function 命令声明的全局变量 依旧是顶层对象的属性 但 let const
  • Python数据结构与算法分析 第五章 搜索和排序

    有序列表的顺序搜索 二分查找 二分搜索 sou 17 18 22 28 38 78 89 99 100 def binarysearch list item first 0 last len list 1 while first lt la