티스토리 뷰
반응형
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
점근적 표기법
점근적 표기법에는 크게 , ,
예시 다항식 : n^3+n^2+n−1
- 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의 범위 | 수행 가능한 시간복잡도 | 계산식 |
N≤10 | , , | |
N≤20 | O(2^N) | 2^20 = 1,048,576 |
N≤100 | O(N^4) | 100^4 = 100,000,000 |
N≤500 | O(N^3) | 500^3 = 125,000,000 |
N≤1,000 | , | |
N≤100,000 | , , , |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- NLU
- 개발자취준
- 객체정렬
- JWT
- 회고록
- dxdy
- Comparable
- Comparator
- thymeleaf
- 코드트리
- Spring
- 자바
- 취리코
- script
- BufferedReader
- BufferedWriter
- 글또
- RASA
- 나만의챗봇
- 유데미
- 항해99
- 백준
- 전자정부프레임워크
- springboot
- 챗봇
- 취업리부트코스
- 코딩테스트
- BFS
- 재기동
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형