函数渐进性的O, Ω ,Θ的表示

一、定义

对于任何函数 f(n) 都可以用 O,Ω,Φ 来表示当 n 时的阶的情况,可以把 O,Ω,Φ 分别看成是 = ,分别估计了函数的渐进上界,渐进下届和准确界。定义表示如下:

1.第一种定义:

设函数 f(n) 代表某一算法在输入大小为 n 的情况下的工作量(效率),假设f(n) g(n) 非负单调,且极限这里写图片描述存在,则当 n 趋于无穷的时候,我们将f(n)与另一行为已知的函数 g(n) 进行比较:
1)如果这里写图片描述,则称 f(n) 在数量级上严格小于 g(n) ,记为 f(n)=o(g(n))
2)如果这里写图片描述,则称 f(n) 在数量级上严格大于 g(n) ,记为 f(n)=ω(g(n))
3)如果这里写图片描述,这里c为非零常数,则称 f(n) 在数量级上等于 g(n) ,记为 f(n)=Θ(g(n))
4)如果 f(n) 在数量级上小于或等于 g(n) ,则记为 f(n)=O(g(n))
5)如果 f(n) 在数量级上大于或等于 g(n) ,则记为 f(n)=Ω(g(n))

2.O表示法第二种定义

对于非负函数 T(n) ,存在两个正常数 cn0 ,并且对于所有的 n>n0 ,有 T(n)cf(n) ,则称 T(n) 在集合 O(f(n)) 里(即前一个集合可以被后一个集合覆盖),记为 T(n)=O(f(n)) ,直观意义是,对于足够大的数据集合,本算法执行的步骤数总是少于 cf(n) 。我们在进行算法分析时希望获得的是尽可能紧凑的上界。

上述算法计算时间的渐进表示是由D.Knuth提出的,但是在数学家眼中 f(n)=O(g(n)) 这种等于号是不严格,但这没关系,不影响计算机算法的分析。

二、 O,Ω,Θ 的性质

利用这些性质可以大大简化对算法的分析。

1)性质1 O,Ω,Θ 是自反的、传递的。例如:
· 自反性, f(n)=O(f(n))
·传递性,若 f(n)=O(g(n))g(n)=O(h(n)) ,则 f(n)=O(h(n))
2)性质2 Θ还有对称性: f(n)=Θ(g(n))g(n)=Θ(f(n))
3)性质3 对于任意的 f(n),g(n) ,我们有 f(n)+g(n)=Θ(max{f(n),g(n)}) ,即对于一个由若干部分组成的串行程序,其总的渐进复杂度等于其复杂度最高的部分,这是个十分有用的性质。
4)性质4 如果 f(n)=O(kg(n)) ,这里k是一个常数,则 f(n)=O(g(n)) ,这条规则告诉我们系数是无关紧要的。因为我们关心的是数量级的比较,而不是同一数量级里面的细小差异。当然当关注点不同时,系数可能会变得重要。
5)性质5 如果 f1(n)=O(g1(n) ,并且 f2(n)=O(g2(n) ,则 (f1+f2)(n)=O(max{g1(n),g2(n)}) .
6)性质6 如果 f1(n) O(g1(n) 里,并且 f2(n) O(g2(n) 里,则 f1(n)f2(n) O(g1(n)O(g2(n) 里。

参考书:《算法之道》邹横明著。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值