由二分查找算法学习算法的时间复杂度

文章目录

二分查找

二分查找是一种算法,其输入是一个有序的元素列表和要查找的元素。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null。

数据

  • 函数形参:列表:xlist,要查找的值:item
  • 查找范围的索引:low ~ high
  • 要去的索引:mid,猜测的值:guess

算法

  • 跟踪要查找的列表部分——开始时为整个列表
  • 每次都检查中间的元素xlist[mid]
  • 如果猜的数字小了,就相应地修改low,
  • 如果猜的数字大了,就修改high
  • 猜对了返回mid,否则列表xlist里没有要查找的值iem,返回None

函数代码

def binsearch(xlist, y): #注意list不能直接做形参low = 0high = len(xlist) - 1while low <= high:mid = (low + high) / 2mid = round(mid)  #一定要取整guess = xlist[mid]if guess == y:return midif guess > y:high = mid - 1else:low = mid + 1return None

调用函数

import sys
sys.path.append(r"D:\python\code")
import binsearch
x = list(range(10,110))  #创建顺序数字列表
index = binsearch.binsearch(x, 100)
print(index)

OOO表示法表示算法运行速度

仅知道算法需要多长时间才能运行完毕还不够,还需知道运行时间如何随列表增长而增加。这正是大OOO表示法的用武之地。
OOO表示法括号里面指出了最糟情况下的运行时间

一些常见的大 OOO 运行时间

O(logn)O(log n)O(logn),也叫对数时间,这样的算法包括二分查找。
O(n)O(n)O(n),也叫线性时间,这样的算法包括简单查找。
O(n∗logn)O(n * log n)O(nlogn),这样的算法包括快速排序——一种速度较快的排序算法。
O(n2)O(n^2)O(n2),这样的算法包括选择排序——一种速度较慢的排序算法。
O(n!)O(n!)O(n!),这样的算法包括旅行商问题的解决方案——一种非常慢的算法
还有其他的运行时间,但这5种是最常见的。
这里做了简化,实际上,并不能如此干净利索地将大OOO运行时间转换为操作数,但就目前而言,这种准确度足够了。

启示:

  • 算法的速度指的并非时间,而是操作数的增速。
  • 谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。
  • 算法的运行时间用大O表示法表示。
  • O(logn)O(log n)O(logn)O(n)O(n)O(n)快,当需要搜索的元素越多时,前者比后者快得越多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生命简史——跨越地球40亿年

来源&#xff1a;新原理研究所摘要&#xff1a;你一定也曾好奇过&#xff0c;地球上的生命究竟是如何起源和演化的&#xff1f;它又是如何从简单的原核细胞不断地演化成复杂的多细胞&#xff1f;如此多元化的物种是如何进化而成的&#xff1f;每一次变化都历经了怎样的挑战与压…

图论解决复杂路口红绿灯安排,python语言实现

文章目录问题描述说明性描述操作性描述图着色问题图着色算法算法精化和python描述算法细节处理&#xff1a;python实现讨论问题描述 说明性描述 说明性描述说明了需要解决的问题是什么&#xff0c;针对什么样的问题&#xff0c;期望什么样的解 这是一个5条路的交叉口&#x…

从算法到硬件,一文读懂2019年 AI如何演进

来源&#xff1a;图灵TOPIA翻译&#xff1a;黄姗&#xff0c;杨鹏岳在刚刚过去的2018年&#xff0c;人工智能领域的大事件、新发现和新进展层出不穷。BERT重磅发布&#xff0c;刷新了很多NLP的任务的最好性能&#xff1b;GAN相关研究论文持续增长&#xff0c;生成的照片达到了以…

apache2.2 虚拟主机配置

一、改动httpd.conf 打开appserv的安装文件夹&#xff0c;找到httpd.conf文件&#xff0c;分别去掉以下两行文字前面的#号。 #LoadModule vhost_alias_module modules/mod_vhost_alias.so去掉#意思是启用apache的虚拟主机功能。 #Include conf/extra/httpd-vhosts.conf去掉这…

Python Cookbook 3rd Edition Documentation

Python Cookbook 3rd Edition Documentation 文章目录第一章&#xff1a;数据结构和算法1.1 解压序列赋值给多个变量问题解决方案讨论1.2 解压可迭代对象赋值给多个变量问题解决方案讨论第一章&#xff1a;数据结构和算法 Python 提供了大量的内置数据结构&#xff0c;包括列表…

《阿丽塔》脑机接口正从科幻走向现实

来源&#xff1a;zhongcap摘要&#xff1a;《流浪地球》和《阿丽塔》前后脚上映&#xff0c;难免不让人比较一番。科幻片的魅力&#xff0c;在于它试验和想象未来的可能性。昨天晚上小编去看了卡梅隆的新作《阿丽塔&#xff1a;战斗天使》。《流浪地球》和《阿丽塔》前后脚上映…

2015年2月12日——不懂点

CNBLOG项目不懂知识点&#xff1a;1. local:[...]的写法 这样声明可使用。 1    xmlns:local"using:CNBlogs" 2 xmlns:ControlHelper"using:CNBlogs.ControlHelper" 2. 书写格式上 - 把所有的繁杂的 style template 等等都放到了具体类似于 .css …

全球首个AI女主播上岗了!太惊艳了!

来源&#xff1a;水木然摘要&#xff1a;前不久&#xff0c;全球首个AI女主播诞生的消息走红网络&#xff01;刚刚&#xff0c;这位AI女主播今天正式上岗了&#xff01;是不是非常惊艳&#xff1f;如果不是专门解释&#xff0c;她极有可能被为是真人&#xff01;这位全球首个AI…

有原创保护能力的公众帐号可申请页面模版功能和图文消息正文插入历史群发链接...

之前微信公众平台仅针对开通了微信支付的公众号支持插入图文消息链接&#xff0c;现在微信团队对有原创保护能力的公众帐号开放页面模版功能、开放图文消息正文插入历史图文链接。&#xff08;怎样申请成为有原创保护能力的公众帐号&#xff1f;也许有人会把页面模版和模板消息…

重磅!华为宣布起诉美国政府

来源&#xff1a;网易智能摘要&#xff1a;今天&#xff0c;华为在深圳总部召开发布会&#xff0c;宣布决定起诉美国政府。01指责美国政府窃取华为服务器华为宣布针对美国《2019财年国防授权法》第889条的合宪性向美国联邦法院提起诉讼&#xff0c;请求法院判定这一针对华为的销…

递归和快速排序

文章目录递归问题描述基线条件和递归条件栈调用栈递归调用栈小结快速排序示例1问题描述欧几里得算法使用D&C解决问题的两个步骤&#xff1a;示例2快速排序工作原理代码小结递归 问题描述 假设你在祖母的阁楼中翻箱倒柜&#xff0c;发现了一个上锁的神秘手提箱。祖母告诉你…

Spire.Pdf 的各种操作总结

Spire.Pdf 的各种操作总结简介 试验新产品总是给我带来许多挑战&#xff0c;当然这也是一个引进创新技术的好方法。在这里我要跟大家分享的是使用Spire.Pdf的过程&#xff0c;它是来自E-iceblue公司的轻便PDF程序库。 设计情节我以前经常没事就搞搞PDF。Spire.Pdf是用C# 写的PD…

从观望到行动:全球工业物联网市场生态全景观察

来源&#xff1a;资本实验室在当前&#xff0c;诸如5G&#xff0c;物联网、边缘计算、人工智能、机器人、区块链、增材制造和虚拟现实/增强现实等技术正在加速融合到工业物联网&#xff08;Industrial Internet of Things&#xff0c;IIoT&#xff09;的肥沃土壤中&#xff0c;…

OC语言知识6

本文目录 一、异步POST请求二、NSURLConnection的其他请求方法上一讲介绍了iOS中的异步GET请求&#xff0c;这讲来看看异步POST请求。 回到顶部一、异步POST请求 假如请求路径是http://192.168.1.102:8080/MJServer/login&#xff0c;请求参数有2个&#xff1a; username &…

散列表(字典)

文章目录问题散列函数应用案例将散列表用于查找防止重复将散列表用作缓存冲突性能装填因子良好的散列函数小结问题 你在一家杂货店上班。有顾客来买东西时&#xff0c;你得在一个本子中查找价格。 如果本子的内容不是按字母顺序排列的&#xff0c;你可能为查找苹果&#xff0…

谁能引领国内人工智能芯片产业突围?

来源&#xff1a;国金证券摘要&#xff1a;我们认为中国在处理器/芯片领域的投资有加速的迹象&#xff0c;AI芯片的创业企业目前已达到40家左右。未来因人工智能边缘运算推理端和云端推理(Inferencing)芯片及设备成本,性能&#xff0c;耗电,效率的考量,以及各种处理器的特性不同…

OC语言知识12

本文目录 一、添加一个简单的图层二、添加一个显示图片的图层三、为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型&#xff0c;而不用UIColor和UIImage&#xff1f;四、UIView和CALayer的选择五、UIView和CALayer的其他关系* 上一讲已经说过&#xff0c;UIView内部默认…

计算机视觉介绍

1.为什么要学习图像处理和计算机视觉 计算机视觉市场需求大&#xff0c;其是人工智能的重要分支。 计算机视觉岗位占所有AI岗位的40%。 但是&#xff0c;中国高校目前尚未设置计算机视觉学科己专业&#xff1b;学习者众多&#xff0c;学习分散&#xff0c;缺少统一教学体系&a…

认识工业互联网

来源&#xff1a;智汇工业摘要&#xff1a;工业互联网是实现智能制造的抓手&#xff0c;推动工业互联网是长期的工作。工业互联网分为广义的工业互联网和狭义的工业互联网。广义的工业互联网就是第四次工业革命的代名词。和德国工业4.0以及中国制造2025类同&#xff0c;都是工业…

模式识别:绪论

模式识别(pattern recognition)&#xff1a;输入原始数据并根据其类别采取相应行为的能力。 具体实例&#xff1a;人脸识别、语音识别、文字识别、指纹识别、DNA序列分析。 要区分不同类别的个体&#xff0c;需要利用其一些物理特性上的差异&#xff0c;成为模式分类的特征。…