
O(n)
알고리즘 실행시간 = 알고리즘 코드를 실행하는 속도 = 컴퓨터의 처리속도/사용된 언어종류/컴파일러 속도
최상의 경우(BEST CASE) : 오메가 표기법
평균의 경우 : 세타 표기법
최악의 경우(Worst CASE) : 빅오 표기법
평균인 세타 표기법이 좋으나, 평가하기가 까다롭다.
중요하지 않은 상수 / 계수 제거
an^3 + 100 + an^4 + 10 + an^2
Time Complexity 예제
Iterations=(End − Start) + 1 -> n번 실행
// 1) for i <- 0 to n
for(i = 0 ; i <= n; i++) //O(n) :: (n - 0 + 1) => n
// 2) for i <- 1 to n
for(i = 1; i <= n; i++) //O(n) :: (n - 1 + 1) => n
// 3) for i <- 1 to n - 1
for(i = 3; i <= n - 1; i++) //O(n) :: ((n - 1) - 3 + 1) => n - 3
MenOfPassion(A[], n) {
sum <- 0; // O(1)
for i <- 1 to n - 1 // O(n)
for j <- i + 1 to n // O(n) :: (n - 1 + 1)
sum <- sum + A[i] × A[j]; # 코드1
return sum; O(1)
}
다항식
1 + (n - 1 - 1) * (n - 1 + 1) + 1
결과 :: O(n^2)
백준 24267
MenOfPassion(A[], n) {
sum <- 0;
for i <- 1 to n - 2
for j <- i + 1 to n - 1
for k <- j + 1 to n
sum <- sum + A[i] × A[j] × A[k]; # 코드1
return sum;
}
i loop : from 1 to n - 2
j loop : from i + 1 to n - 1
k loop : from j + 1 to n
Iterations=(End − Start) + 1
i 루프: (1)부터 (n - 2)까지 (n - 2) 회 실행
j 루프: i가 반복될때 마다, (i + 1)부터 (n -1)까지 (n - i - 1) 회 실행
k 루프: j가 반복될때 마다, (j + 1)부터 (n)까지 (n - j) 회 실행
i loop : (n - 2) - 1 + 1 => (n - 2)
j loop : (n - 1) - (i + 1) + 1 => (n - i - 1)
k loop : n - (j + 1) + 1 => (n - j)


예시
input n = 7
'# 코드1 실행 횟수 35

