本文为大家讲解了python算法表示概念,供大家参考,具体内容如下

常数阶O(1)
常数又称定数,是指一个数值不变的常量,与之相反的是变量
为什么下面算法的时间复杂度不是O(3),而是O(1)。
int sum = 0,n = 100; /*执行一次*/ sum = (1+n)*n/2; /*执行一次*/ printf("%d", sum); /*行次*/
这个算法的运行次数函数是f(n)=3。根据我们推导大O阶的方法,第一步就是把常数项3改为1。在保留最高阶项时发现,它根本没有最高阶项,所以这个算法的时间复杂度为O(1)。
另外,我们试想一下,如果这个算法当中的语句sum=(1+n)*n/2有10句,即:
int sum = 0, n = 100; /*执行1次*/ sum = (1+n)*n/2; /*执行第1次*/ sum = (1+n)*n/2; /*执行第2次*/ sum = (1+n)*n/2; /*执行第3次*/ sum = (1+n)*n/2; /*执行第4次*/ sum = (1+n)*n/2; /*执行第5次*/ sum = (1+n)*n/2; /*执行第6次*/ sum = (1+n)*n/2; /*执行第7次*/ sum = (1+n)*n/2; /*执行第8次*/ sum = (1+n)*n/2; /*执行第9次*/ sum = (1+n)*n/2; /*执行第10次*/ printf("%d",sum); /*执行1次*/
事实上无论n为多少,上面的两段代码就是3次和12次执行的差异。这种与问题的大小无关(n的多少),执行时间恒定的算法,我们称之为具有O(1)的时间复杂度,又叫常数阶。
注意:不管这个常数是多少,我们都记作O(1),而不能是O(3)、O(12)等其他任何数字,这是初学者常常犯的错误。
推导大O阶方法
1.用常数1取代运行时间中的所有加法常数
2.在修改后的运行次数函数中,只保留最高阶项
3.如果最高阶项存在且不是1,则去除与这个项相乘的常数
对数阶O(log2n)
对数
如果a的x次方等于N(a>0,且a不等于1),那么数x叫做以a为底N的对数(logarithm),记作x=logaN, 。其中,a叫做对数的底数,N叫做真数。
5^2 = 25 , 记作 2= log5 25
对数是一种运算,与指数是互逆的运算。例如
① 3^2=9 <==> 2=log<3>9;
② 4^(3/2)=8 <==> 3/2=log<4>8;
③ 10^n=35 <==> n=lg35。为了使用方便,人们逐渐把以10为底的常用对数记作lgN
对数阶
int count = 1;
while (count < n)
{
count = count * 2; /* 时间复杂度为O(1)的程序步骤序列 */
}
由于每次count乘以2之后,就距离n更近了一分。
也就是说,有多少个2相乘后大于n,则会退出循环。
由2^x=n得到x=log2n。所以这个循环的时间复杂度为O(logn)。
线性阶O(n)
执行时间随问题规模增长呈正比例增长
data = [ 8,3,67,77,78,22,6,3,88,21,2]
find_num = 22
for i in data:
if i == 22:
print("find",find_num,i )
线性对数阶O(nlog2n)
平方阶O(n^2)
for i in range(100):
for k in range(100):
print(i,k)
立方阶O(n^3)
k次方阶O(n^k),
指数阶O(2^n)。
随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# python
# 算法表示
# Python算法的时间复杂度和空间复杂度(实例解析)
# Python算法中的时间复杂度问题
# python算法题 链表反转详解
# python算法与数据结构之单链表的实现代码
# python算法与数据结构之冒泡排序实例详解
# 详解python算法之冒泡排序
# Python算法之图的遍历
# Python算法输出1-9数组形成的结果为100的所有运算式
# python算法演练_One Rule 算法(详解)
# Python算法应用实战之栈详解
# Python算法之栈(stack)的实现
# python算法学习之计数排序实例
# Python集成学习之Blending算法详解
# 高阶
# 执行时间
# 的是
# 这是
# 是一种
# 是指
# 与之
# 不等于
# 则会
# 又叫
# 具体内容
# 大家多多
# 近了
# 两段
# 称之为
# 越低
# 有多少个
# 也就是说
# 事实上
# nbsp
相关文章:
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
制作宣传网站的软件,小红书可以宣传网站吗?
建站之星24小时客服电话如何获取?
建站之星在线客服如何快速接入解答?
如何获取PHP WAP自助建站系统源码?
如何在阿里云服务器自主搭建网站?
制作网站的软件免费下载,免费制作app哪个平台好?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
山东网站制作公司有哪些,山东大源集团官网?
在线教育网站制作平台,山西立德教育官网?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
SQL查询语句优化的实用方法总结
如何自定义建站之星网站的导航菜单样式?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
TestNG的testng.xml配置文件怎么写
做企业网站制作流程,企业网站制作基本流程有哪些?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
怀化网站制作公司,怀化新生儿上户网上办理流程?
网页设计与网站制作内容,怎样注册网站?
建站之星安装需要哪些步骤及注意事项?
建站之星伪静态规则如何正确配置?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何将凡科建站内容保存为本地文件?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
已有域名和空间如何搭建网站?
常州企业建站如何选择最佳模板?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何通过主机屋免费建站教程十分钟搭建网站?
股票网站制作软件,网上股票怎么开户?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
建站之星如何一键生成手机站?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
贸易公司网站制作流程,出口贸易网站设计怎么做?
建站之星展会模板:智能建站与自助搭建高效解决方案
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
如何基于PHP生成高效IDC网络公司建站源码?
南京网站制作费用,南京远驱官方网站?
高端建站如何打造兼具美学与转化的品牌官网?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
建站之星如何修改网站生成路径?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
Java解压缩zip - 解压缩多个文件或文件夹实例
建站之星后台管理如何实现高效配置?
建站之星代理如何优化在线客服效率?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
广德云建站网站建设方案与建站流程优化指南
*请认真填写需求信息,我们会在24小时内与您取得联系。