算法分析与时间复杂度

算法分析的数学基础

使用以下四个定义:

  1. 如果存在正常数c与n0,使得当N≥n0时,T(N) ≤ cf(N),则记为T(N) = O(f(N)). 也就是大O表示法
  2. 如果存在正常数c与n0,使得当N≥n0时,T(N) ≥ cf(N),则记为T(N) = Ω(f(N)) .也就是大Ω表示法
  3. T(N) = Θ(h(N)) 当且仅当 T(N) = O(h(N)) ,且 T(N) = Ω(h(N)) .
  4. 如果 T(N) = O(p(N))T(N) ≠ Θ(p(N)) , 则 T(N) = o(p(N)) .

总结:

通俗的说,这几种表示法可以理解如下:
  1. 大O表示法: f(x) = O(g(x)) 表示的含义是f(x)以g(x)为上界
  2. 小o表示法: f(x) = o(g(x)) 表示的含义是f(x)趋近于g(x)
  3. Ω表示法:f(x) = Ω(g(x)) 表示的含义是f(x)以g(x)为下界
  4. Θ表示法:f(x) = Θ(g(x)) 表示的含义是g(x)是f(x)的确界

#算法的常见时间复杂度
时间复杂度

由图中的时间复杂度增长趋势可以看出:
  1. 最优的算法复杂度为logN
  2. 当 N 的值较小时,NlogN < N, 当 N 的值较大时,NlogN > N
  3. 指数次方与阶乘的复杂度非常高,一般不能使用这些算法,二次方或三次方的时间复杂度在N值较大是也是相当高的,在设计算法的时候必须要注意这一点
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值