算法相关概念

本文介绍了算法的时间复杂度和空间复杂度的概念及其分析方法。时间复杂度用于度量算法执行时间,常见时间复杂度有O(1)至O(2^n)等,分析时遵循简单的法则如求和法则和乘法法则。空间复杂度则关注算法所需存储空间,与输入规模n相关。在实际应用中,时间和空间复杂度需综合考虑,以设计出高效算法。
摘要由CSDN通过智能技术生成

1.时间复杂度
时间复杂度被用于度量一个算法执行时间的长短。常见的算法时间复杂度有:常数阶O(1)、对数阶O(logn)、线性阶O(n)、线性对数阶O(n·logn)、平方阶O(n2)、立方阶O(n3)……k次方阶O(nk)和指数阶O(2n)等。随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越来越低。也就是说时间复杂度从小到大依次为:O(1)<O(logn)<O(n)<O(n·logn)<O(n2)<O(n3)<…<O(2n)<O(n!)。通常情况下,在计算时间复杂度的时候,首先要分析算法中包含的基本操作,然后根据相应的语句结构确定每一个操作的执行次数,再利用上文给出的抽象方法确定T(n)的数量级(1,logn,n,n·logn,n2等)。接下来,令函数f(n)=该数量级,对T(n)/f(n)求极限,若结果为一个常数c,则该算法的时间复杂度为O(f(n))。

那么如何计算一个算法的时间复杂度?通常情况下,有以下几个简单的分析法则:1)对于简单的说明性语句、输入输出语句、赋值语句,可以近似认为其时间复杂度为O(1)。O(1)代表一个算法的运行时间为常数。2)对于顺序结构语句块,需要依次执行一系列语句,其时间复杂度遵循O记号下的“求和法则”。所谓“求和法则”指的是:如果算法的两个部分的时间复杂度分别为T1(n)=O(f(n))和T2(n)=O(g(n)),那么可以得到T1(n)+T2(n)=O(max(f(n),g(n))),特别地,如果T1(m)=O(f(m)),T2(n)=O(g(n)&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_46007090

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值