Aritalab:Lecture/Algorithm/BigO
From Metabolomics.JP
Contents |
まとめ
- O記法は関数の上限を与える
- e.g. log n = O(n )
- Ω記法は関数の下限を与える
- e.g. n2 = Ω(n )
- Θ記法はO記法とΩ記法をあわせたもの
O記法
- 定義
関数 f(x) が正の定数 c と適当な値 x0 に対して
- f(x) ≤ c g(x) (∀ x ≥ x0)
を満たすならば
- f(x) = O(g(x))
と書きます。つまり、O記法は関数の上限を与えます。
Ω記法
- 定義
関数 f(x) が正の定数 c と適当な値 x0 に対して
- f(x) ≥ c g(x) (∀ x ≥ x0)
を満たすならば
- f(x) = Ω(g(x))
と書きます。つまり、Ω記法は関数の下限を与えます。
Θ記法
- 定義 Θ( )
関数 f(x) が
- f(x) = O(g(x)), f(x) = Ω(g(x))
を満たすならば
- f(x) = Θ(g(x))
と書きます。
注
O、Ω、Θ記法で表しているのは関数の集合であるため、本当なら
- f(x) ∈ O(nn)
のように書かなくてはなりません。しかし、便宜的に
- O(n) + O(n) = O(n)、や
- f(x) = x2 + O(n)
のように書くことが多いです。 また上の定義からは、
- log n = O(n)
- n = O(n2)
なのですが、このような書き方もほとんどせず、O記法をΘのようにみなして書きます。