컴퓨터 알고리즘 2023-03-13 수업정리

Flow

Big $O$, Big $\Theta$, Big $\Omega$


Big $O$

주어진 복잡도 함수 f(n)에 대하여, n이 임의의 수 N 보다 크거나 같을 때, g(n)이 f(n)에 어떠한 상수 c를 곱한 것보다 작거나 같다면 아래와 같이 표현한다. 그리고 g(n) is oh of f(n) 이라고 읽는다. $$g(n) \leq c * f(n),\ g(n) \in O(f(n))$$

Big $\Omega$

앞서 살펴본 Big $O$ 가 g(n)의 시간복잡도의 upperbound를 (g(n)은 한 f(n)보다는 빠른 알고리즘임을 의미한다.)의미했다면, Big $\Omega$ 는 g(n)의 시간복잡도의 lowerbound를 의미한다. 따라서 Big $\Omega$ 표현은 아래 수식을 만족해야 한다. 단순하게 Big $O$ notation과는 부등호 방향이 반대이다. $$if\ g(n) \in \Omega(f(n)),\ g(n) \ge c * f(n)\ for(n \ge N)$$

Big $\Theta$

g(n)이 $O(f(n),\ \Omega(f(n))$ 에 모두 속할 경우 아래와 같이 표기할 수 있다. $$g(n) \in \Theta(f(n))$$

도식 표현

Example

아래의 수식이 참인지 증명하시오 $$n! \in \Theta(n^n)$$ proof