Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- db
- oracle
- Git
- 코틀린
- 프로그래머스
- 쿼리
- 자바
- 에러
- mybatis
- error
- 시큐리티
- Security
- 넥사크로
- 알고리즘
- 스프링
- JPA
- IntelliJ
- 오라클
- Vue
- Java
- JavaScript
- GitHub
- kotlin
- aws
- 방법
- 생성
- jquery
- 함수
- Spring
- Eclipse
Archives
- Today
- Total
송민준의 개발노트
시간복잡도 Big-O 표기 본문
- 시간복잡도를 표기함으로써 작성한 코드가 얼마나 시간이 소요될지 알 수 있다.
Big-O 표기법
O(1) | O(log n) | O(n) | O(n log n) | O(n^2) | O(n^3) | O(2^n) |
상수 시간 | 로그 시간 | 직선적 시간 |
로그 직선적 시간 |
2차 시간 | 3차 시간 | 지수 시간 |
Better <---> Worse |
시간복잡도를 분석하는 것은 input n에 대하여 알고리즘이 문제를 해결하는 데에 얼마나 오랜 시간이 걸리는 지를 분석하는 것과 같다. 그리고 이는 Big-O 표기를 이용하여 정의할 수 있다.
1. O(1)
int sum = N * (N + 10) / 2;
2. O(N)
int sum = 0;
for (int num = 1; num <= N; num++) {
sum += num;
}
3. O(n^2)
int sum = 0;
for (int num = 1; num <= N; num++) {
for (int num2 = 1; num2 <= N; num2++) {
if(num == num2) {
sum += num;
}
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스-level2-타겟넘버 (0) | 2019.12.13 |
---|---|
DFS(Depth-First Search) - 깊이 우선 탐색법 (0) | 2019.12.10 |
프로그래머스-두 정수 사이의 합 (0) | 2019.10.29 |
프로그래머스-k번째수 (0) | 2019.10.28 |
프로그래머스-서울에서 김서방 찾기 (0) | 2019.10.28 |