时间复杂度和空间复杂度

时间复杂度衡量算法执行时间与问题规模的关系,常见的有O(1)至O(2^n)等。计算方法包括找出基本语句、估算执行次数的数量级并使用大O记号表示。空间复杂度则关注算法运行时所需内存空间,与数据量和算法实现有关。
摘要由CSDN通过智能技术生成

时间复杂度:是指执行算法所需要的时间
常见的时间复杂度有(按复杂度有低到高):

常数阶O(1) < 对数阶O(log2n) < 线性阶O(n) < 线性对数阶O(nlog2n) < 平方阶0(n^2) < 立方阶0(n^3) < ……k次方阶0(n^k) < 指数阶0(2^n)
复杂度越大,算法的执行效率越低

求算法时间复杂度的方法:
①、找出算法中的基本语句:
算法中执行次数最多的语句就是基本语句,通常是最内层循环的循环体
②、计算基本语句的执行次数的数量级
只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数是函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数,这样就能够简化算法分析
③、用大O记号标书算法的时间性能
将基本语句执行次数的数量级放入大O几号中
注:若果算法中包含嵌套的循环,则基本语句通常是最内层的循环体,如果算法中包含并列循环的时间复杂度相加
④、计算时间复杂度的法则:
(1)、简单的输入输出语句或是赋值语句,近似为O(1)
(2)、顺序结构,需要依次执行一系列语句所用的时间可以采用求和法则

求和法则:假设算法的2部分的时间复杂度分别为O(f((n))和O(g(n)),则时间复杂度为O(max(f(n) , g(n)))

(3)、选择结构,如if语句,它的时间主要消耗在执行else字句上,时间复杂度为O(1)
(4)、循环结构的运行时间主要体现在多次迭代中执行循环体以及检验循环条件是否成立,时间复杂度由乘法法则求得

乘法法则:若算法的2部分时间复杂度分别为O(f((n))和O(g(n)),则时间复杂度为Of(n)*g(n))

(5)、如果结构过于复杂,可以将其分成几个容易估算的部分,然后利用求和法则和乘法法则求整个算法的时间复杂度

举例:<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值