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

本文详细解释了算法分析中常见的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)里。

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值