Skip to content

Commit f56ba57

Browse files
committed
docs : sort 정리
1 parent 9cf7d2a commit f56ba57

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

CS/Sort/do02reen24/sort.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# 📚 Sort
2+
3+
## ⏰ 시간복잡도
4+
5+
| Name | 최선 | 평균 | 최악 | 메모리 |
6+
| :------: | :------: | :------: | :------: | :-----: |
7+
| 버블정렬 | O(n) | O(n^2) | O(n^2) | O(1) |
8+
| 선택정렬 | O(n^2) | O(n^2) | O(n^2) | O(1) |
9+
| 삽입정렬 | O(n) | O(n^2) | O(n^2) | O(1) |
10+
| 힙정렬 | O(n) | O(nlogn) | O(nlogn) | O(1) |
11+
| 병합정렬 | O(nlogn) | O(nlogn) | O(nlogn) | O(n) |
12+
| 퀵정렬 | O(nlogn) | O(nlogn) | O(n^2) | O(logn) |
13+
14+
## 🔎 퀵정렬
15+
16+
### 병합 정렬과의 공통점
17+
18+
- Divide and Conquer(분할-정복) 알고리즘에 속함
19+
- 둘 다 점점 탐색할 배열의 크기를 쪼개서 재귀함수에 넘겨줌
20+
21+
### 병합 정렬과의 차이점
22+
23+
- 병합 정렬과 달리 다른 메모리 공간을 사용하지 않음
24+
- 병합정렬을 `stable` 하지만, 퀵 정렬을 `unstable`함. (원소들 중 같은 값이 있는 경우 초기 순서가 달라질 수 있기 때문)
25+
26+
### 분할 방법
27+
28+
1. Lomutos' Partition (배열의 맨 마지막 값을 pivot으로 정하는 방식)
29+
2. Hoare's Parition (물리적으로 배열의 중간값을 pivot으로 정하는 방식)

0 commit comments

Comments
 (0)