算法之时间复杂度

~~对规模为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可以忽略不记。

 

            

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章