四个所需定义估计算法资源消耗

来源:互联网 发布:淘宝商品是如何推广的 编辑:程序博客网 时间:2024/06/14 02:50

四个所需定义估计算法资源消耗

参考Mark Allen Weiss《数据结构与算法分析c++描述》第三版

1、如果存在正常数cn0使得当Nn0T(N)cf(N),则记为T(N)=O(f(N))
2、如果存在正常数cn0使得当Nn0T(N)cg(N),则记为T(N)=Ω(g(N))
3、T(N)=Θ(h(N))当且仅当T(N)=O(h(N))T(N)=Ω(h(N))
4、如果对所有的常数c存在n0使得当N>n0T<cp(N),则记为T=o(p(N))。非正式的定义为:如果T(N)=O(p(N))T(N)Θ(p(N)),则T=o(p(N))
第一个定义是大O记法,例T(N)=1000Nf(N)=N2,则1000N=O(N2),可以说1000NN平方级的,或大ON平方级。表示T(N)的增长率小于等于f(N)的增长率。当我们说T(N)=O(f(N))时,我们是在保证函数T(N)是在以不快于f(N)的速度增长;因此f(N)T(N)的一个上界。这意味着f(N)=Ω(T(N)),则T(N)f(N)的一个下界。
第二个定义表示T(N)的增长率大于等于g(N)的增长率。
第三个定义表示T(N)的增长率等于h(N)的增长率。
第四个定义表示T(N)的增长率小于p(N)的增长率。

0 0