サムネがコーヒーの記事は書きかけです。

アルゴリズムの計算量解析

計算量の一般化

$T(n) = \left\{ \begin{align} T(1) \to \Theta (1) \qquad if\quad n=1 \\aT(\frac{n}{b})+f(n)\qquad if\quad n>1 \end{align} \right.$

ケース1:$f(n)=O (n^{\log_b a – \epsilon })$の時

$T(n)\Theta (n^{\log_b a})$

ただし、$b > 1, a\geq 1$

ケース2:$f(n)=\Theta (n^{\log_b a })$の時

$T(n)=\Theta (n^{\log_b a \lg n }$

ただし、$b > 1, a\geq 1$

ケース3:$f(n)=\Omega (n^{\log_b a +\epsilon})$の時

この場合は、同時に$af(\frac{n}{b})\leq cf(n), c<1$を満たす必要がある。

この時、

$T(n)=\Theta (f(n))$

二分探索の計算量

$T(n) =T(\frac{n}{2}) +\Theta (1)$

$n^{\log_b a} = n^{\log_2 1}=1$

$f(n)=\Theta (n^{\log_b a}) = \Theta (1)$

ケース2より、

$T(n) =\Theta (\Theta (1) \lg n)=\Theta(\lg n)$

行列の積演算

$T(n) = 7(T(\frac{n}{2})) + \Theta (n^2)$

$2 <\log_2 7 <3$より、

$f(n) =O(n^{\log_2 7 -\epsilon})$

ケース1より、

$T(n) = \Theta (n^{\log_2 7})$

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です