2. WHAT IS ALGORITHM?
문제에 대한 답을 찾기 위해 계산하는 절차
cf. 자료구조 (자료를 효율적으로 이용하기 위해 저장하는 방법)
프로그램 = 알고리즘 + 자료구조
https://www.youtube.com/watch?v=6hfOvs8pY1k
https://youtu.be/zFenJJtAEzE?t=16m25s
3. ITERATIONVS RECURSION
S(n) = 𝑖=1
𝑛
𝑖
S(n) = 1 + 2 + ··· + n
int S1 (int n) {
int s = 0;
for (i=1; i<=n; i++)
s = s + i;
return s;
}
Main : sum = S1(10);
6. THINK
Tower of Hanoi http://carstart.tistory.com/20
https://www.acmicpc.net/problem/2270
http://yaraba.tistory.com/74
https://www.acmicpc.net/problem/10872
https://www.acmicpc.net/problem/1850
https://www.acmicpc.net/problem/1003
7. COMPLEXITY
Space Complexity
고정공간요구, 가변공간요구
저장기술의 발달로 그리 중요하게 여기지 않음
Time Complexity
컴파일 시간 + 실행 시간
컴파일 시간은 정확히 수행된다는 것이 검증되면 다시 하지 않아도 되므로, 실
행 시간만 염두하면 됨
12. TIME COMPLEXITY
Ο 𝑛 : 알고리즘의 최악의 경우의 성능, 수행 시간의 상한
Ω 𝑛 : 알고리즘의 최선의 경우의 성능, 수행시간의 하한
Θ 𝑛 : 알고리즘의 상한과 하한을 동시에 나타냄 (평균)
𝜊(𝑛): 수행시간의 절대적 상한
https://en.wikipedia.org/wiki/Big_O_notation#Family_of_Bachmann.E2.80.93La
ndau_notations
13. Ο 𝑛
Ο 𝑔(𝑛) = {𝑓 𝑛 : 모든 𝑛 > 𝑛0에 대해, 0 ≤ 𝑓 𝑛 ≤ 𝑐𝑔 𝑛 을 만족하는 양의
상수 𝑐와 𝑛0가 존재한다. }
14. Ο 𝑛
알고리즘 분석은 n이 매우 큰 값이므로 𝑛0 아래의 성장률은 고려하지 않음.
𝑓 𝑛 = 3𝑛 + 8
𝑛 ≥ 8 인 모든 𝑛에 대해 3𝑛 + 8 ≤ 4
3𝑛 + 8 = 𝑂 𝑛 에 관해 𝑐 = 4 이고 𝑛0 = 8
𝑓 𝑛 = 𝑛2
+ 1
𝑛 ≥ 1 인 모든 𝑛에 대해 𝑛2 + 1 ≤ 2𝑛2
𝑛2 + 1 = 𝑂 𝑛2 에 관해 𝑐 = 1 이고 𝑛0 = 1
𝑛0와 𝑐가 유일한 집합은 아님.
15. Ω(𝑛)
Ω 𝑔(𝑛) = {𝑓 𝑛 : 모든 𝑛 > 𝑛0에 대해, 0 ≤ 𝑐𝑔 𝑛 ≤ 𝑓 𝑛 을 만족하는 양의
상수 𝑐와 𝑛0가 존재한다. }