'$n>10,000$인 임의의 양의 정수 $n$에 대해 $0.01 n^2$이 $100 n$ 보다 크다'를 다르게 표현하면 다음과 같음.
다음 성질을 갖는 정수 $N \ge 0$이 존재할 때
$f(n)$이 $g(n)$ 보다 궁극적으로 크다 라고 말함:
시간 복잡도의 기준으로 볼 경우:
$n$ | $0.1 n^2$ |
$0.1 n^2 + n + 100$ |
---|---|---|
10 | 10 | 120 |
20 | 40 | 160 |
50 | 250 | 400 |
100 | 1,000 | 1,200 |
1,000 | 100,000 | 101,100 |
$n$ |
$\lg n$ |
$n$ |
$n\, \lg n$ |
$n^2$ |
$n^3$ |
$2^n$ |
---|---|---|---|---|---|---|
$10$ | $0.003$ $\mu$s | $0.01$ $\mu$s | $0.033$ $\mu$s | $0.10$ $\mu$s | $1.0$ $\mu$s | $1$ $\mu$s |
$20$ | $0.004$ $\mu$s | $0.02$ $\mu$s | $0.086$ $\mu$s | $0.40$ $\mu$s | $8.0$ $\mu$s | $1$ ms |
$30$ | $0.005$ $\mu$s | $0.03$ $\mu$s | $0.147$ $\mu$s | $0.90$ $\mu$s | $27.0$ $\mu$s | $1$ 초 |
$40$ | $0.005$ $\mu$s | $0.04$ $\mu$s | $0.213$ $\mu$s | $1.60$ $\mu$s | $64.0$ $\mu$s | $18.3$ 분 |
$50$ | $0.006$ $\mu$s | $0.05$ $\mu$s | $0.282$ $\mu$s | $2.50$ $\mu$s | $125.0$ $\mu$s | $13$ 일 |
$10^2$ | $0.007$ $\mu$s | $0.10$ $\mu$s | $0.664$ $\mu$s | $10.00$ $\mu$s | $1.0$ ms | $4 \times 10^{13}$ 년 |
$n$ |
$\lg n$ |
$n$ |
$n\, \lg n$ |
$n^2$ |
$n^3$ |
$2^n$ |
---|---|---|---|---|---|---|
$10^3$ | $0.010$ $\mu$s | $1.00$ $\mu$s | $9.966$ $\mu$s | $1.00$ ms | $1.0$ 초 | |
$10^4$ | $0.013$ $\mu$s | $10.00$ $\mu$s | $130.000$ $\mu$s | $100.00$ ms | $16.7$ 분 | |
$10^5$ | $0.017$ $\mu$s | $0.10$ ms | $1.670$ ms | $10.00$ 초 | $11.6$ 일 | |
$10^6$ | $0.020$ $\mu$s | $1.00$ ms | $19.930$ ms | $16.70$ 초 | $31.7$ 년 | |
$10^7$ | $0.023$ $\mu$s | $0.01$ 초 | $0.230$ 초 | $1.16$ 일 | $31,709$ 년 | |
$10^8$ | $0.027$ $\mu$s | $0.10$ 초 | $2.660$ 초 | $115.70$ 일 | $3.17 \times 10^7$ 년 | |
$10^9$ | $0.030$ $\mu$s | $1.00$ 초 | $29.900$ 초 | $31.70$ 년 |
다음 성질을 갖는 양의 실수 $c$와 음이 아닌 정수 $N$이 존재할 때 $g(n)\in O(f(n))$ 성립:
$g(n) \in O(f(n))$ 읽는 방법:
$g(n)$은 $f(n)$의 큰 $O$이다.
$g(n)$의 점근적 상한은 $f(n)$이다.
$n^2+10n \in O(n^2)$
$n \ge 10$인 경우: $$n^2+10n \le 2n^2$$
그러므로 $c=2$와 $N=10$ 선택
$5n^2 \in O(n^2)$
$n\ge 0$인 경우:
$$5n^2 \le 5n^2$$
그러므로 $c=5$와 $N=0$ 선택
$\frac{n(n-1)}{2} \in O(n^2)$
$n \ge 0$인 경우:
$$n(n-1)/2 \le \frac{n^2}{2}$$
그러므로 $c = 1/2$과 $N=0$ 선택
$n^2 \in O(n^2+10n)$
$n \ge 0$인 경우:
$$n^2 \le 1 \times (n^2+10n)$$
그러므로 $c=1$과 $N=0$ 선택
$n \in O(n^2)$
$n \ge 1$인 경우:
$$n \le 1 \times n^2$$
그러므로 $c=1$과 $N=1$ 선택
$n^3 \not\in O(n^2)$
$c$와 $N$을 아무리 크게 지정하더라도, $N$ 보다 큰 어떤 수 $n$에 대해 다음이 성립:
$$n^3 > c\cdot n^2$$
예를 들어, $n > c$로 잡으면 됨.
다음 성질을 갖는 양의 실수 $c$와 음이 아닌 정수 $N$이 존재할 때 $g(n)\in \Omega(f(n))$ 성립:
$g(n) \in \Omega(f(n))$ 읽는 방법:
$g(n)$은 $f(n)$의 오메가이다.
$g(n)$의 점근적 하한은 $f(n)$이다.
$n^2 + 10n \in \Omega(n^2)$
$n \ge 0$인 경우:
$$n^2+10n \ge n^2$$
그러므로 $c = 1$과 $N = 0$ 선택
$5n^2 \in \Omega(n^2)$
$n \ge 0$인 경우:
$$5n^2 \ge 1\cdot n^2$$
그러므로, $c=1$과 $N=0$ 선택
$\frac{n(n-1)}{2} \in \Omega(n^2)$
$n \ge 2$인 경우:
$$\frac{n(n-1)}{2} \ge \frac{1}{4} n^2$$
그러므로 $c = 1/4$과 $N = 2$ 선택
$n^3 \in \Omega(n^2)$
$n \ge 1$인 경우:
$$n^3 \ge 1 \cdot n^2$$
그러므로, $c = 1$과 $N = 1$ 선택
$n \not\in \Omega(n^2)$
$c$를 아무리 작게, $N$을 아무리 크게 지정하더라도, $n \le c\cdot n^2$을 만족시키는 $n\ge N$이 존재.
예를 들어, $n \ge 1/c$로 잡으면 됨.
즉, 다음 성질을 갖는 양의 실수 $c$와 $d$, 그리고 음이 아닌 정수 $N$이 존재할 때 $g(n)\in \Theta(f(n))$ 성립:
$g(n) \in \Theta(f(n))$ 읽는 방법:
$\frac{n (n-1)}{2} \in \Theta(n^2)$:
$n\ge 2$인 경우:
$$\frac{n (n-1)}{2} \ge \frac 1 4 n^2$$
$n \ge 0$인 경우:
$$\frac{n (n-1)}{2} \le \frac 1 2 n^2$$
그러므로, $c = \frac 1 4$, $d = \frac 1 2$, $N = 2$.
임의의 양의 실수 $c$에 대해 다음 성질을 갖는 음이 아닌 정수 $N$이 존재할 때 $g(n)\in o(f(n))$ 성립:
$g(n) \in o(f(n))$ 읽는 방법:
의미
$g(n)$이 $f(n)$에 비해 궁극적으로 하찮을 만큼 작다.
알고리즘 분석적 측면: 복잡도 $g(n)$이 복잡도 $f(n)$ 보다 궁극적으로 훨씬 좋다.
큰 $O$: 하나의 양의 실수 $c$에 대해서 부등식 성립
작은 $o$: 모든 양의 실수 $c$에 대해서 부등식 성립
$n \in o(n^2)$
$n \not\in o(5n)$
$n^2 \not\in o(5n)$
이유:
$$n \not\in o(5n)$$
가정:
$$g(n) \in o(f(n))$$
다음 성립:
$$ g(n) \in O(f(n)) - \Omega(f(n)) $$
증명: 생략.
임의의 $a, b > 1$에 대해
$$\log_a n \in \Theta(\log_b n)$$
즉, 로그 함수는 모두 동일한 복잡도 카테고리에 속함.
$b > a > 0$이면 다음 성립:
$$a^n \in o(b^n)$$
즉, 지수 함수는 밑수가 다르면 다른 복잡도 카테고리에 속함.
임의의 양의 실수 $a$에 대해 다음 성립:
$$a^n \in o(n!)$$
즉, $n!$은 어떠한 지수 복잡도함수보다 더 나쁘다(느리다).
많이 언급되는 복잡도 카테고리를 순서대로 나열하면 다음과 같음:
$$\Theta(\lg n)\;\; \Theta(n)\;\; \Theta(n\, \lg n)\;\; \Theta(n^2)\;\; \Theta(n^j)\;\; \Theta(n^k)\;\; \Theta(a^n)\;\; \Theta(b^n)\;\; \Theta(n!)$$
단, $k > j > 2$이고 $b > a > 1$임.
$g(n)$이 $f(n)$의 카테고리 보다 왼편에 위치한 카테고리에 속한 경우 다음 성립:
$$g(n) \in o(f(n))$$
$c\ge 0$, $d>0$, $g(n) \in O(f(n))$, $h(n) \in \Theta(f(n))$ 인 경우 다음 성립:
$$c \cdot g(n) + d\cdot h(n) \in \Theta(f(n))$$
$\lim_{n\to \infty} \frac{g(n)}{f(n)}$의 값이
만약 $c > 0$이면, $g(n) \in \Theta(f(n))$,
만약 $0$ 이면, $g(n) \in o(f(n))$,
만약 $\infty$, 즉, 발산하면, $f(n) \in o(g(n))$.
$a>0$일 때, $a^n \in o(n!)$
아래 조건이 성립한다고 가정하자.
$$\lim_{n\to \infty} f(n) = \lim_{n\to \infty} g(n) = \infty$$그러면 다음이 성립한다.
$$\lim_{n\to \infty} \frac{g(n)}{f(n)} = \lim_{n\to \infty} \frac{g'(n)}{f'(n)}$$