티스토리 뷰

 

점근적 표기법

점근적 표기법에는 크게 , , 

 

 

예시 다항식 : n^3+n^2+n

  • O(빅-오)에서는 가장 높은 차수보다 같거나 높은 식을 뜻합니다. 
    • O(n^3), O (n^6) O(n^100) 모두 표현 가능하지만, 타이트하게  O(n^3)으로 라고 결정합니다.

 

 

대입과 조건문의 시간복잡도

코드의 실행 횟수를 점근적 표기법으로 추상적으로 표현할 수 있는데 이것을 시간복잡도라고 부릅니다.

 

set a = 5 // O(1)
if a != 10 // O(1)
	print('hello') // O(1)

 

상기 코드의 시간 복잡도를 계산해보면 다음과 같습니다. print 메서드를 O(1)로 가정한다면, 대입(set a= 5)도 O(1)이고, print 도 O(1)입니다. if a !=10 도 단순히 한번 두 값을 비교연산을 수행하기에 O(1)입니다.

따라서 상기 코드의 시간복잡도는 O(1) 입니다.

 

참고사항

for loop를 1억번(100,000,000) 도는데 걸리는 시간은 약 1초입니다. 

 

제한 시간이 1초인 경우에 구현할 코드의 시간복잡도를 O로 계산했다고 가정하면,

N의 범위에 따라 제한 시간안에 처리할 수 있는지 파악할 수 있습니다.

 

 

N의 범위 수행 가능한 시간복잡도 계산식
N10 , , 
N20 O(2^N) 2^20                            = 1,048,576
N100 O(N^4) 100^4                          = 100,000,000
N500 O(N^3) 500^3                          = 125,000,000
N1,000 , 
N100,000 , , , 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함