2025-07-30 22:11
Status:
Tags:알고리즘
합병 정렬
구조
- 분할
- 배열 반으로 나눔
- 더이상 못 나눌때까지 계속 재귀 호출로 쪼갬
- 정복
- 각 하위 배열이 단위 요소면 이미 정렬되었으니 반환
- 병합
- 나눠진 하위배열들을 하나씩 잡아서 합침
- 각 첫요소 비교 → 작은값 왼쪽 반복 → 두 배열 하나 합쳐짐
- 전체 하위 배열들에 모두 같은 작업 반복해서 최종 배열 반환
파이썬 코드
모든 경우 O(n log n) 보장
구분 | 시간 복잡도 | 공간 복잡도 | 안정성 |
---|---|---|---|
최선 | O(n log n) | O(n) | 안정적 |
평균 | O(n log n) | O(n) | 안정적 |
최악 | O(n log n) | O(n) | 안정적 |