渐进符号

渐进符号

1、渐进紧确界记号:Θ

Θ的数学含义:
对一个给定的函数g(n),用Θ(g(n))来表示以下函数的集合
Θ(g(n))={ f(n):存在正常量c1、c2和n0,使得对所有n ≥ n 0 n_{0} n0,有0≤ c1g(n) ≤ f(n) ≤ c2g(n) }
Θ(g(n))要求每个成员 f(n)∈Θ(g(n)) 均渐进非负,即当n足够大时 f(n) 非负,渐进正函数就是对所有足够大的n均为正的函数。

EX:T(n)= 100 n 4 + 20 n 3 + 15 n 2 + 6 n + 1 100n^{4}+20n^{3}+15n^{2}+6n+1 100n4+20n3+15n2+6n+1
当n足够大的时候,算法的运行时间取决于时间表达式T(n)的最高项,最高项的系数在n较大时,对时间作用较小,其余项可忽略不计.
故T(n) ≈ n 4 \approx n^{4} n4 T ( n ) = Θ ( n 4 ) T(n)= Θ(n^{4}) T(n)=Θ(n4)

2、渐进上界记号:O

Θ记号渐进地给出一个函数的上界和下界,当只有一个渐进上界时,使用O记号。

数学定义:对于给定的函数g(n),用O(g(n))来表示以下函数的集合
O ( g ( n ) ) = { f ( n ) O(g(n)) = \{f(n) O(g(n))={f(n):存在正常数量n和 c 0 c_{0} c0,使得对所有 n ⩾ n 0 , 0 ⩽ f ( n ) ⩽ c g ( n ) } n\geqslant n_{0},0\leqslant f(n) \leqslant cg(n) \} nn0,0f(n)cg(n)}

使用O记号,我们常常可以仅仅通过检查算法的总体结构来描述算法的运行时间,以插入排序为例,双重嵌套循环结构最坏情况运行为O ( n 2 ) (n^{2}) (n2),也就是说上界为
O ( n 2 ) (n^{2}) (n2)
以下举几种常见的复杂度

O ( 1 ) < O ( l o g n ) < O ( n ) < O ( n l o g n ) < O ( n 2 ) < O ( n 3 ) < O ( 2 n ) < O ( n ! ) O(1)<O(logn)<O(n)<O(nlogn)<O(n^{2})<O(n^{3})<O(2^{n})<O(n!) O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)

O ( 1 ) O(1) O(1): 基本执行操作次数是常量
O ( n ) O(n) O(n): 一般出现在只有一个循环的情况下
O ( n 2 ) O(n^{2}) O(n2):一般出现在嵌套循环中

public void test(int n)
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n;j++)
		{
			......
		}
	}
}

O ( l o g n ) O(logn) O(logn):(二分查找等,例如以下模块 )

public void test(int n)
{
	for(int i=1;i<n;i+=2) 
	{
		.......
	}
}

O ( n l o g n ) O(nlogn) O(nlogn): 常出现在归并排序中

3、渐进下界符号:Ω

与O定义类似,Ω记号提供了渐进下界。

定理:对于任意两个函数 f ( n ) 和 g ( n ) f(n)和g(n) f(n)g(n),我们有 f ( n ) = Θ ( g ( n ) ) f(n)=Θ(g(n)) f(n)=Θ(g(n)),当且仅当 f ( n ) = O ( g ( n ) ) 且 f ( n ) = ω f(n)=O(g(n)) 且 f(n)=\omega f(n)=O(g(n))f(n)=ω

4、非渐进紧确上界:o

由O记号提供的上界可能是也可能不是紧确的,非紧确的可用o记号。

定义: o ( g ( n ) ) = { f ( n ) : 对 任 意 正 常 量 c > 0 , 存 在 常 量 n 0 > 0 , 使 得 对 所 有 的 n ⩾ n 0 , 有 0 ⩽ f ( n ) ⩽ c g ( n ) } o(g(n))=\{ f(n):对任意正常量c>0,存在常量n_{0}>0,使得对所有的n\geqslant n_{0},有0 \leqslant f(n) \leqslant cg(n)\} o(g(n))={f(n):c>0,n0>0,使nn0,0f(n)cg(n)}

EX: f ( n ) = n 2 + n , o ( n ) = n 3 f(n)=n^{2}+n,o(n)=n^{3} f(n)=n2+n,o(n)=n3

5、非渐进紧确下界: ω \omega ω

ω 和 Ω \omega和\Omega ωΩ的关系与o和O的关系相同,在这里不过多阐述。

可以用下图记忆渐进符号
的存储
参考资料:算法导论(第三版)

  • 13
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值