全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python算法表示概念扫盲教程

本文为大家讲解了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 


相关文章: 香港服务器部署网站为何提示未备案?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何零基础在云服务器搭建WordPress站点?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  制作网站公司那家好,网络公司是做什么的?  建站之星微信建站一键生成小程序+多端营销系统  如何在建站之星网店版论坛获取技术支持?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  建站之星免费版是否永久可用?  如何通过二级域名建站提升品牌影响力?  建站ABC备案流程中有哪些关键注意事项?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  建站之星多图banner生成与模板自定义指南  h5网站制作工具有哪些,h5页面制作工具有哪些?  制作网站外包平台,自动化接单网站有哪些?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  TestNG的testng.xml配置文件怎么写  音乐网站服务器如何优化API响应速度?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  如何配置支付宝与微信支付功能?  高防服务器租用指南:配置选择与快速部署攻略  如何快速搭建支持数据库操作的智能建站平台?  *服务器网站为何频现安全漏洞?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  韩国服务器如何优化跨境访问实现高效连接?  教学网站制作软件,学习*后期制作的网站有哪些?  宝塔新建站点报错如何解决?  建站之星后台密码遗忘或太弱?如何重置与强化?  网站制作公司,橙子建站是合法的吗?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站之星上传入口如何快速找到?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  建站之星价格显示格式升级,你的预算足够吗?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  网站制作免费,什么网站能看正片电影?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  建站主机数据库如何配置才能提升网站性能?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  建站之星导航如何优化提升用户体验?  h5在线制作网站电脑版下载,h5网页制作软件?  专业商城网站制作公司有哪些,pi商城官网是哪个?  高性价比服务器租赁——企业级配置与24小时运维服务  Python路径拼接规范_跨平台处理说明【指导】  建站主机空间推荐 高性价比配置与快速部署方案解析  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  c++怎么用jemalloc c++替换默认内存分配器【性能】 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。