반응형
정렬 알고리즘의 Big O
알고리즘 | 시간 복잡도 (Best) | 시간 복잡도 (Average) | 시간 복잡도 (Worst) | 공간 복잡도 |
버블 정렬 | O(n) | O(n^2) | O(n^2) | O(1) |
삽입 정렬 | O(n) | O(n^2) | O(n^2) | O(1) |
선택 정렬 | O(n^2) | O(n^2) | O(n^2) | O(1) |
보통 이 세 가지 정렬 알고리즘은 2차 정렬 알고리즘이라고 불립니다. 이는 시간 복잡도가 O(n^2) 이기 때문입니다.
버블 정렬, 삽입 정렬의 경우 정렬이 거의 다 되어있으면 시간 복잡도가 O(N) 입니다. (Best)
하지만 선택 정렬의 경우 최솟값을 찾기위해 끝까지 다 보기 때문에 모든 경우에서 O(n^2) 입니다. (Best)
요약
- 정렬은 기본입니다.
- 버블 정렬, 선택 정렬, 삽입 정렬은 모두 대략 비슷합니다.
- 모두 평균 시간 복잡도가 이차적입니다.
- 우리는 더 나은 방법을 찾을 수 있지만, 더 복잡한 알고리즘이 필요합니다.
- 데이터 셋이 매우 작을 때 효과적입니다.
결론
버블 정렬, 선택 정렬, 삽입 정렬은 모두 시간 복잡도가 O(n^2)인 기본적인 정렬 알고리즘입니다. 작은 데이터 셋에서는 효과적이지만, 큰 데이터 셋에서는 비효율적일 수 있습니다. 따라서 더 나은 성능을 위해서는 퀵 정렬, 병합 정렬 등의 복잡한 알고리즘을 고려해야 합니다. 이 글에서는 세 가지 기본 정렬 알고리즘의 작동 방식과 시간 복잡도를 비교하여 정리했습니다.
반응형
'Algorithm > Theory' 카테고리의 다른 글
삽입 정렬 (Insertion Sort) (0) | 2024.07.19 |
---|---|
선택 정렬 (Selection Sort) (0) | 2024.07.15 |
버블 정렬 (Bubble Sort) 정렬 알고리즘 소개 (0) | 2024.07.14 |
검색 알고리즘 (0) | 2024.07.10 |
(더 어려운) 재귀 연습 문제 1부 (0) | 2024.07.10 |