算法的渐进运行时间(时间复杂度)

算法的渐进运行时间(时间复杂度)

渐进记号

用来表示算法的渐进运行时间的记号是用定义域为自然数集N={0,1,2,...}的函数来定义的这些记号便于用来表示最坏情况运行时间T(n),因为T(n)一般定义于整数的输入规模上。有以下5种:

Θ记号  渐进确界

ο记号  渐进上界

Ω记号  渐进下界

º记号  非渐进紧确的上界

ω记号  非渐进紧确的下界

 

Θ记号

Θ(g(n))={f(n):存在正常数c1,c2,和n0,使得对所有n≥n0,有0≤c1g(n)≤f(n)≤c2g(n)},对任意一个函数f(n),若存在正常数c1,c2,使当n充分大时,f(n)能被夹在c1g(n)和c2g(n)之间,则f(n)属于集合Θ(g(n))。因为Θ(g(n))是一个集合,可以写成“f(n)∈Θ(g(n))”,表示f(n)是Θ(g(n))的元素。不过,通常写成“f(n)=Θ(g(n))”来表示相同的意思。

因为任意一个常数都是0次的多项式,故可以把任何常函数表示成Θ(n0)或Θ(1)。我们经常使用Θ(1)表示一个常数或某变量的常函数。

 

ο记号

Θ记号渐进地给出一个函数的上界和下界。当只有渐进上界时,使用ο记号。对一个函数g(n),用ο(g(n))表示一个函数集合ο(g(n))={f(n):存在正常数c和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)},读作g(n)的大ο。ο记号在一个常数因子范围内给出某函数的一个上界。对于所有n0右边的n值,f(n)的值都在cg(n)以下。

 

Ω记号

正如ο记号给出一个函数的渐进上界,Ω记号给出一个函数的渐进下界。Ω(g(n))={f(n):存在正常数c和n0,使得对所有n≥n0,有0≤cg(n)≤f(n)},读作g(n)的大Ω。

 

º记号 

 

ω记号

***以上图片摘自《算法导论》P28***

posted @ 2014-08-04 21:15  DF的翱翔  阅读(8199)  评论(0编辑  收藏  举报