Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 유효성검사
- 스프링 부트 핵심 가이드
- 제로베이스 #백엔드 #Java #Spring #개발자 #백엔드공부 #백엔드 스쿨
- validated
- 인텔리제이
- 백엔드
- JPA
- #devops #terraform #state
- Swagger
- 스프링부트실전가이드
- ORM
- 데이터베이스 연동
- MariaDB
- 리포지토리 인터페이스
- Java
- 엔티티 설계
- DAO 연동 컨트롤러 서비스 설계
- 백엔드공부
- 백엔드스쿨
- 제로베이스
- 프로젝트 생성
- auditing
- spring
- 개발자
- DAO 설계
Archives
- Today
- Total
JeongJin's Blog
알고리즘 복잡도 개념과 자바로 구현해 보기 본문
1. 복잡도
- 알고리즘 성능을 나타내는 척도
2. 시간 복잡도
- 알고리즘의 필요 연산 횟수
3. 공간 복잡도
- 알고리즘의 필요 메모리
- 일반적으로 메모리 사용량 기준은 MB 단위
* 시간 복잡도와 공간 복잡도는 Trade-off(모순) 관계
* 공간 복잡도 보다는 시간 복잡도를 줄이는 방법으로 구현하는게 추세이다.
public class Main {
static int fibonacci(int n) {
if (n < 3) {
return 1;
}
return fibonacci(n - 2) + fibonacci(n - 1);
}
static int factorial(int n) {
if (n < 1) {
return 1;
}
return n * factorial(n - 1);
}
public static void main(String[] args) {
System.out.println("== 시간 복잡도 ==");
System.out.println("== O(1) ==");
System.out.println("hello");
System.out.println("== O(logN) ==");
for (int i = 1; i < 16; i*=2) {
System.out.println("hello");
}
System.out.println("== O(N) ==");
for (int i = 0; i < 2; i++) {
System.out.println("hello");
}
System.out.println("== O(NlogN) ==");
for (int i = 0; i < 2; i++) {
for (int j = 1; j < 8; j*=2) {
System.out.println("hello");
}
}
System.out.println("== O(N^2) ==");
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
System.out.print("hello ");
}
System.out.println();
}
System.out.println("== O(2^N) ==");
// 1, 1, 2, 3, 5, 8, 13, ...
System.out.println(fibonacci(6));
System.out.println("== 공간 복잡도 ==");
System.out.println("== O(N) ==");
int n = 3;
System.out.println(factorial(n));
System.out.println("== O(1) ==");
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
System.out.println(result);
}
}
|
'1일1공부 > 기초수학' 카테고리의 다른 글
지수와 로그 개념과 자바로 구현해 보기 (0) | 2023.09.10 |
---|---|
점화식과 재귀함수 개념과 자바로 구현해보기 (0) | 2023.09.09 |
조합의 개념 이해와 자바로 구현해 보자 (0) | 2023.09.07 |
순열의 개념 이해와 자바로 구현해 보자 (0) | 2023.09.07 |
경우의 수를 자바를 이용하여 이해하기 (0) | 2023.09.06 |