← Back to Blog
[Algorithm] Optimality Analysis
computer-science > algorithm
2026-03-182 min read
#development #computer-science #algorithm
Reference
Mathematics Background
i=1∑ni=2n(n+1)i=1∑ni2=62n3+3n2+n≈3n3i=1∑nik≈k+1nk+1i=0∑k2i=2k+1−1i=1∑ki2i=(k−1)2k+1+2
To study
- Amount of Work
- Worst-Case Complexity
- Average Complexity
Classifying Functions

-
Ω(g) : 함수 g 보다 증가율이 높거나 같다.
Ω(g) is the set of functions f , such that f(n)≥cg(n) for all n≥n0
-
Θ(g) : 함수 g 와 같은 증가율을 가진다.
Θ(g)=O(g)∩Ω(g)
-
O(g) : 함수 g 보다 증가율이 낮거나 같다.
O(g) is the set of functions f , such that f(n)≤cg(n) for all n≥n0
비교하는 방법
보통 최악의 경우를 위해 계산하기 때문에 무한대 상황을 가정한다.
n→∞limg(n)f(n)
결과값이 무한대로 갈 경우,
f∈ω(g) 또는 최소한 f∈Ω(g) 이다.

O(g), Θ(g), Ω 의 성질
- Transitive: 만약 f∈O(g) 와 g∈O(h) 이면, f∈O(h) 는 transitive하다.
또한 Ω,Θ,o,ω 는 transitive하다.
- Reflexive: f∈Θ(f)
- Symmetric: 만약 f∈Θ(g) 이면, g∈Θ(f) 이다.
f∈O(g)↔g∈Ω(f) 이면
O(f+g)=O(max(f,g)) 와 Ω(f+g)=Ω(max(f,g)) 를 만족한다.
Analyzing Algorithms and Problems
조건1: Correctness가 증명되어야 한다
- if the preconditions are satisfied
- then the postconditions will be treu
- when the algorithm terminates.
조건2: Amount of Work Done
- A measure of work
- Basic Operation
Worst-Case Complexity
- Dn 이 크기가 n 인 input 사이즈를 가지고 있다.
- I 는 Dn 의 원소를 의미한다.
- t(I) 는 input I 에 대해, basic operation의 수를 의미한다.
- 함수 W 는 W(n)=max{t(I)∣I∈Dn} 라 정의한다.
Average Complexity
- Pr(I)는 입력 I 가 발생할 확률이다.
- 평균 알고리듬 수행시간은 다음과 같이 정의한다.
- A(n)=∑i∈DnPr(I)t(I)
- t(I) 로 알고리듬을 분석한다.
예시
int seqSearch(int[] E, int n, int K)
int ans, index;
ans = -1;
for (index = 0; index < n; index++)
if (K == E[index])
ans = index;
break;
return ans;
Worst-Case
- array에 값이 없을 경우.
- array 마지막 원소가 K 일 경우.
는 값이 없거나 맨 마지막에 값이 있을 경우이니, W(n)=n 이다.
Average-Behavior Analysis
A(n)=Pr(succ)Asucc(n)+Pr(fail)Afail(n)
가정
- Pr(Ii∣succ)=1/n