The Big Oh Notation: 두 판 사이의 차이
youngwiki
편집 요약 없음 |
편집 요약 없음 |
||
| 9번째 줄: | 9번째 줄: | ||
==내용== | ==내용== | ||
[[파일:Figure 1. Big Oh, Omega, Theta.png|섬네일|Figure 1. Big Oh, Omega, Theta]] | |||
“빅 오(Big Oh)” 표기는 시간 복잡도 함수를 상한/하한으로 나타내어 이를 단순화 하는 방식이다. 함수 <math>f(n) = 2n</math>과 <math>g(n) = n</math>은 빅 오 분석에서 동일하다. 빅 오 표기에는 아래와 같은 세 가지 정의가 존재한다. | “빅 오(Big Oh)” 표기는 시간 복잡도 함수를 상한/하한으로 나타내어 이를 단순화 하는 방식이다. 함수 <math>f(n) = 2n</math>과 <math>g(n) = n</math>은 빅 오 분석에서 동일하다. 빅 오 표기에는 아래와 같은 세 가지 정의가 존재한다. | ||
* <math>f(n) = O(g(n))</math>는 <math>c\cdot g(n)</math>가 <math>f(n)</math>에 대한 상한임을 의미한다. | * <math>f(n) = O(g(n))</math>는 <math>c\cdot g(n)</math>가 <math>f(n)</math>에 대한 상한임을 의미한다. | ||
2025년 9월 5일 (금) 22:07 판
개요
주어진 어떤 알고리즘에 대한 시간 복잡도는 가능한 문제 인스턴스 크기에 대한 함수들이며, 이들을 정밀하게 다루는 것은 매우 어렵다. 따라서 이들을 단순화하여 분석하는 것이 매우 좋은 방식 중 하나이다. 예를 들어, 와 같은 시간 복잡도 함수는 정밀하게 분석하기란 매우 어렵지만, 시간 복잡도가 n에 대해 2차적으로 증가한다는 관찰이 틀렸다고 볼 수는 없다.
해당 문서에서는 이러한 특성을 이용한 “빅 오(Big Oh)” 표기에 대해 알아본다.
내용

“빅 오(Big Oh)” 표기는 시간 복잡도 함수를 상한/하한으로 나타내어 이를 단순화 하는 방식이다. 함수 과 은 빅 오 분석에서 동일하다. 빅 오 표기에는 아래와 같은 세 가지 정의가 존재한다.
- 는 가 에 대한 상한임을 의미한다.
- 따라서 어떤 상수 c가 존재하여 충분히 큰 모든 n에 대하여 가 성립한다.
- 는 가 에 대한 하한임을 의미한다.
- 따라서 어떤 상수 c가 존재하여 충분히 큰 모든 n에 대하여 가 성립한다.
- 는 가 에 대한 상한이고 가 에 대한 하한임을 의미한다.
- 따라서 어떤 상수 c1, c2가 존재하여 충분히 큰 모든 n에 대하여 가 성립한다.
이러한 정의들은 figure 1에 잘 제시되어 있다. 이들 정의 각각은 어떤 상수 n0가 존재하여 그 이후에는 조건이 만족된다는 것을 보여준다.
Big Oh Addition/Subtraction
어떠한 차수가 같은 함수 에 대해 를 가정해 보자. 이때 함수 에 대한 빅 오 표기는 아래와 같이 계산할 수 있다.
이라 하면
즉, 같은 차수의 함수끼리 더해도 결국 그 차수는 변하지 않는다. 하지만 빅 오 표기에서의 뺄셈은 최대 차수의 계수에 따라 그 결과가 달라지기 때문에, 모호하게 작동한다. 예를 들어 함수 에 대해:
이라면 , 이라면,
따라서 어떤 차수가 같은 함수 에 대해 뺼셈을 진행한다면, 일반적으로 라고 말할 수 있을 뿐이며, 해당 차수가 보존되는 지에 대해서는 말할 수 없다.