Big-O 기준으로 정리한다. 즉, 최악의 경우를 고려한다!
1. 시간복잡도 효율 순서
Better O(1) < O(log n) < O(n) < O(n*log n) < O(n^2) < O(2^n) < O(n!) Worse
2. 대표 알고리즘
- O(1)
- Stack의 push, pop
- O(log n)
- Binary Search
- 2의 2제곱부터 n이하의 항목을 출력하는 경우
for (int i = 2; i <= n; i*2) {
System.out.println(i);
}
- O(n)
- for문
- O(n*log n)
- Quick Sort, Merge Sort, Heap Sort
- O(n^2)
- 2중for문
- 삽입정렬, 버블정렬, 선택정렬
- O(2n)
- 재귀로 구현하는 피보나치 수열
'Java알고리즘' 카테고리의 다른 글
[BOJ][Java] Q25543 - X 만들기 (0) | 2022.11.12 |
---|---|
[개념] 최장 증가 부분 수열, LIS(Longest Increase Subsequence) 알고리즘 (0) | 2022.11.12 |
[BOJ][Java] Q3151 - 합이 0 (0) | 2022.06.22 |
[BOJ][Java]Q17951 - 흩날리는 시험지 속에서 내 평점이 느껴진거야 (0) | 2022.06.09 |
[BOJ][Java] Q1253 - 좋다 (0) | 2022.04.13 |