자료를 정리하는 방법
int main(void){
int a = 3;
int b = 5;
int result = a + b;
}
자료구조=자료: a, b, result
알고리즘: +, 모든 단계적인 절차
int main(void){
int a[n] = {1, 2, 3}, sum = 0;
for(int i = 0; i < n; i++){
sum += a[i];
}
}
시간복잡도 = 중요한 연산의 횟수 = n - 1
공간복잡도 = 메모리에 n만큼 정수 저장 = n + 2
상한
정의: 모든 n>n0에 대하여 f(n) <= c*g(n)을 만족하는 n0와 c가 존재하면
f(n) ∈ O(g(n))
2n + 1 < 10n => ∈ O(n)
2n + 1 < n^2 => ∈ O(n^2)
하한
정의: 모든 n>n0에 대하여 f(n) >= c*g(n)을 만족하는 n0와 c가 존재하면
f(n) ∈ O(g(n))
2n + 1 > n => ∈ 오메가(n)
2n + 1 > 1 => ∈ 오메가(1)
상한 & 하한
정의: 모든 n>n0에 대하여 c1g(n) >= f(n) >= c2g(n)을 만족하는 n0와 c가 존재하면
3n > 2n + 1 > n => ∈ 세타(n)