二分法查找的时间复杂度(二分查找的比较次数怎么算的)

二分查找:又称折半查找,输入一个有序的元素列表(必须是有序的),将列表中间位置记录的元素与查找元素比较,如果查找的元素包含在列表中,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的元素大于查找元素,则进一步查找前一子表,否则进一步查找后一子表,重复以上过程,直到找到满足条件的记录,使查找成功,二分查找返回其位置;或直到子表不存在为止,此时查找不成功,返回None。

二分查找算法要求:.必须是有序列表;

二分查找算法时间复杂度:O(log n)

二分查找算法优点:比较的次数少,查找速度快,平均性能好,占用系统内存较少。

def binary_search(list,item):

low = 0

high = len(list) – 1

while low <= high:

mid = int((low + high)/2) # 整除计算也可用 mid = (low + high)//2

guess = list

if guess == item:

return mid

if guess < item:

low = mid + 1

else:

high = mid – 1

return None

my_list = [1,3,5,6,8,7,9,12,18,45]

print (binary_search(my_list,2))

print (binary_search(my_list,12))

二分法查找的时间复杂度(二分查找的比较次数怎么算的)

本文【二分法查找的时间复杂度(二分查找的比较次数怎么算的)】由作者: 自旋锁 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4405.html

(0)
上一篇 2023-03-12 08:50:53
下一篇 2023-03-12 09:01:26

相关推荐

  • qq互联授权管理为什么不全(qq授权管理在哪里设置)

    如今个人信息泄露事件频频出现 在使用不同的APP或者网站注册新账号时 相信不少人都会图个方便 直接用微信或者QQ授权登入 不过在使用授权登入的同时 这些 App 以及网站都通过微信( QQ ) 读取到我们的一些个人信息 这样的习惯或多或少存在一些信息安全隐患 不要怕,这个是可以解决滴~ 今天蜀黍就和大家分享下 如何检查那些年自己的微信、QQ 以及微博、小程序…

    2023-03-19
    000
  • python简单的多线程编程_python多线程爬虫

    图/文:迷神 我们在Python爬虫中,重要的是讲究速度,如果有10万或者100万Url地址,写过爬虫的都会知道,那估计是非常慢的。我们的Python爬虫一般IO密集型业务,Python爬虫程序需要发起网络请求,必然就有网络IO阻塞,通常请求一个URL耗时要几百毫秒到几秒,逐步执行,和我们CPU那么高性能比起来,那真是天壤之别。 比如,我们Python爬虫在…

    2023-03-09
    400
  • javajdk环境变量配置不成功_java安装后环境变量配置

    JDK的安装与环境变量的配置 1.jdk的安装: jdk的安装,傻瓜式安装,一路下一步 jdk中的两个文件夹 lib bin lib:存放的打包好的jar包 bin:所有可执行的文件 2.环境变量的配置 : 右键单击此电脑—属性—高级系统设置—高级—环境变量 在下方系统变量中–新建 新建后输入变量名称:JAVA_HOME 之后,找到java中jdk所在的文件…

    2023-03-09
    500
  • linux系统安装java环境

    手动安装可以让用户更好的控制 Java 运行时环境。 使用 Linux 发行版的软件包管理工具来安装 Java 软件包是很容易的。然而,有时你需要手动安装 Java。这对基于 Java 的应用服务器(如 Tomcat 或 JBoss)的管理员特别重要。许多开源和专有软件产品都依赖于这些服务。 开发者或运行时套件? Java 虚拟机Java Virtual M…

    2023-03-20
    000
  • 迷你dv带用什么机器播放_DV和miniDV磁带的区别

    20多年前,几乎家家都有一些这样的录像带。里面多记录春节晚会和明星歌舞演出,还有就是婚礼的录像资料。 我们习惯叫它大1/2录像带。1/2是指录像带磁带的宽度为1/2英寸,即12.65mm。 笨重的1/2录像机流行没有多久,就被更加小巧,各种技术指标更好的dv机所取代。这个时候,百姓生活条件也较以前有了很大的提高,人们也开始关心和重视亲情记录。家中的dv机记录…

    2023-03-16
    100
  • c语言开发工程师需要会什么

    对于刚进入Web3的同学来说,希望能了解哪种开发语言比较常用。识链大学发现,目前主流区块链的开发语言主要有:C++、Go、Java、Rust、Solidity等,这些语言,传统Web2互联网的开发者已经具备了,因此过渡到Web3还是很容易的。 在Web3世界,不同区块链使用的编程语言会有所不同。但无论开发人员掌握哪种语言,都会有工作机会。今天,识链大学就给大…

    2023-03-09
    200
  • dos命令大全及用法pdf(dos内部命令)

    晚上好,我是老杨,今天来聊聊常用的DOS命令。 虽然是老古董,但不妨碍它的好用程度。可能一些新手不晓得,但是和老杨一个年纪的,一定对DOS系统不陌生。 尽管现在大多数电脑的操作系统是Windows,但在Windows 95推出以前,占统治地位的操作系统就是DOS。 DOS即Disk Operating System,我们常成为是磁盘操作系统。 由于Windo…

    2023-03-19
    000
  • QQ数据库可以查到什么

    扁平化设计已经成为一种流行趋势,无论是操作系统还是应用软件,各个方面都有所体现。最新版本的QQ软件中,也增加了几个全新的头像,这些头像就是采用的扁平化设计,看上去非常可爱。那么如何将这些全新的头像提取出来呢? 深挖QQ数据库文件 QQ头像等信息,都集中在一个名为Data.rdb的数据库文件中。如果用户已经安装最新版本的QQ软件,那么进入到X:\Program…

    2023-03-21
    000
  • outlook发邮件抄送那里填什么,outlook无法发送邮件

    OUTLOOK使用技巧6-密件抄送 快速启用“密件抄送” 有时根据需要您希望将某份邮件秘密抄送给某些同事,这时您可以启用“密件抄送”: 1.按下 Ctrl + N新建电子邮件; 2.点击“选项”>“密件抄送”,可在显示的“密件抄送”框中指定秘密接收此邮件的人员,其他收件人看不到此框中的人员: 快速切换界面 有时您需要不断在“邮件”和“日历”等界面之间进…

    2023-03-19
    000
  • 递归函数例子div显示 c语言递归函数的例子

    引言 前面我们讲了函数的组成部分以及传参详解,函数指针等知识,对函数相关知道有了一定了解,已经足够应对平时的开发和学习了。今天我们再来说说一个比较特殊的函数,就是我们的今天的主题——递归函数,为什么说是特殊呢,这是因为平时我们写的函数都是通过别人或者说是其他代码来调用的,而递归函数是自己来调用自己, 是不是觉得很特别呢?递归函数也是常常在笔试题中出现的哦~ …

    实用教程 2023-03-18
    200

发表回复

登录后才能评论
返回顶部
错说博客上线啦!