Processing math: 100%

알고리즘/이론

복잡도 함수 표기법

겜도리도리 2022. 3. 16. 18:03
반응형

빅(O) 표기법

정의 : 점근적 상한

어떤 함수 g(n)O(f(n))에 속한다는 말은 n이 커짐에 따라 cf(n)보다는 작은 값을 가지게 된다는 의미

따라서 g(n)cf(n)에 비해 좋다(빠르다)라고 할 수 있다.

즉, 어떤 알고리즘의 시간복잡도가 O(f(n))이라는 것은 입력 n에 대해 알고리즘의 수행시간이 늦어도 cf(n)은 된다는 말이다. (점근적 상한)

알고리즘의 수행시간이 cf(n)보다 느릴 수 없다는 말과 같다.

 

오메가(Ω) 표기법

정의 : 점근적 하한

어떤 함수 g(n)Ω(f(n))에 속한 다는 말은 n이 커짐에 따라 cf(n)보다는 큰 값을 가지게 된다는 의미

따라서 g(n)cf(n)에 비해 나쁘다(느리다)라고 할 수 있다.

즉, 어떤 알고리즘의 시간복잡도가 Ω(f(n))이라는 것은 입력 n에 대해 알고리즘의 수행시간이 아무리 빨라도 cf(n)이라는 말이다. (점근적 하한)

알고리즘의 수행시간이 cf(n)보다 빠를 수 없다는 말과 같다.

 

세타(Θ) 표기법

정의 : f(n)에 대해서 Θ(f(n))=O(f(n))Ω(f(n))

g(n)Θ(f(n))이라면 g(n)f(n)의 차수라고 한다.

 

작은(o) 표기법

정의 : f(n)에 대해 (g(n))o(f(n))일 때 모든 양의 실수 c에 대해,

nN인 모든 n에 대해 0g(n)c×f(n)이 성립하는 음이 아닌 정수 N이 존재하는 경우

 

큰 (O)와의 차이점

Oc>0을 만족하는 특정한 실수 c에 대해 하나만 성립하여도 된다.

작은 oc>0인 모든 실수 c에 대해 성립하여야 한다.

 

(g(n))o(f(n)) 라는 것은 g(n)cf(n)보다 훨씬 낫다(빠르다)는 의미

 

g(n)f(n)의 시간 복잡도 비교는 극한값을 이용해 판정할 수 있다.

반응형

'알고리즘 > 이론' 카테고리의 다른 글

[알고리즘] 0-1 배낭 문제  (0) 2022.06.10
[알고리즘] 허프만 코드  (0) 2022.06.10
[알고리즘] 다익스트라 알고리즘  (0) 2022.06.10
크루스칼 알고리즘  (0) 2022.04.19
순열, 조합 알고리즘 C++  (0) 2021.12.05