たまに参照したくなる時があるのでメモ書き。
ランダウの記法の種類と定義。
Family of Landau notations
(O)-notation ((Big Oh))
[ O(g(n)) = \{ f(n) : 0 \leq f(n) \leq c \cdot g(n) \quad (\exists c > 0, \exists n_0 > 0, \forall n > n_0) \} ]
(\Omega)-notation ((Big Omega))
[ \Omega(g(n)) = \{ f(n) : 0 \leq c \cdot g(n) \leq f(n) \quad (\exists c > 0, \forall n_0 > 0, \forall n > n_0) \} ]
(\Theta)-notation ((Big Theta))
[ \Theta(g(n)) = \{ f(n) : 0 \leq c_1 \cdot g(n) \leq f(n) \leq c_2 \cdot g(n) \quad (\exists c_1 > 0, \exists c_2 > 0, \exists n_0 > 0, \forall n > n_0) \} ]
(o)-notation ((Small Oh))
[ o(g(n)) = \{ f(n) : 0 \leq f(n) \leq c \cdot |g(n)| \quad (\forall c > 0, \exists n_0 > 0, \forall n \geq n_0) \} ]
(\omega)-notation ((Small Omega))
[ \omega(g(n)) = \{ f(n) : 0 \leq c \cdot g(n) < f(n) \quad (\forall c> 0, \exists n_0 > 0, \forall n \geq n_0) \} ]
留意事項
分野によって慣習が違うので注意が必要な時がある。 (O(g(n))) を使っていながら上記の定義上 (\Omega(g(n))) や (\Theta(g(n))) であったりするので記号を鵜呑みせず文脈から読み解く必要がある。
アルゴリズムを評価する時において (O)-notation では厳密性にかけてしまう。 そのため出来る限り (\Theta )-notation 以上で評価したい。
もっとも、何をおっしゃってるのか私にはさっぱりわかりませんですがね ((´・ω・))