Aritalab:Lecture/Algorithm/BigO

From Metabolomics.JP
< Aritalab:Lecture | Algorithm(Difference between revisions)
Jump to: navigation, search
m
m
Line 1: Line 1:
 
__FORCETOC__
 
__FORCETOC__
 +
==まとめ==
 +
* O記法は関数の上限を与える
 +
: e.g. log ''n'' = O(''n'' )
 +
* &Omega;記法は関数の下限を与える
 +
: e.g. ''n''<sup>2</sup> = &Omega;(''n'' )
 +
* &Theta;記法はO記法と&Omega;記法をあわせたもの
 
==O記法==
 
==O記法==
 
;定義
 
;定義
Line 13: Line 19:
 
を満たすならば
 
を満たすならば
 
: f(x) = &Omega;(g(x))
 
: f(x) = &Omega;(g(x))
と書きます。つまり、&Omega;記法は関数の加減を与えます。
+
と書きます。つまり、&Omega;記法は関数の下限を与えます。
 
==&Theta;記法==
 
==&Theta;記法==
 
;定義 &Theta;( )
 
;定義 &Theta;( )

Revision as of 12:01, 20 May 2011

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記法をΘのようにみなして書きます。

Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox