~~对规模为n的问题,算法的运行时间增长情况
所以有:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!)
渐进意义下的记号:O(≤)、Ω(≥)、Θ(=)、o(<)
① 大O记法:若存在一个自然数n0 和一个常数c>0,使得
,
则称f( n )为O( g(n) )的。 // f 没有g的某个常数倍增长的快。(上界)
② Ω记法:若存在一个自然数n0 和一个常数c>0,使得
,
则称f( n )为Ω( g(n) )的。 // f 的增长至少和g的某个常数倍一样快。(下界)
③ Θ记法:若存在一个自然数n0 和两个常数c1、c2>0,使得
,
则称f( n )为Θ( g(n) )的。 //Θ给出算法运行时间增长率的一个精确描述。
④ o记法:若存在一个自然数n0 和一个常数c>0,使得
,
则称f( n )为o( g(n) )的。 //当n充分大时,f对于g可以忽略不记。