합병 정렬
위키백과, 우리 모두의 백과사전.
| 분류 | 정렬 알고리즘 |
|---|---|
| 자료구조 | 배열 |
| 시간복잡도 | О(n log n) |
| 공간복잡도 | О(n) |
| 최적 | 가끔 |
| 완전 | {{{완전}}} |
합병 정렬 또는 병합 정렬(merge sort)은 O(n log n) 비교 기반 정렬 알고리즘이다. 일반적인 방법으로 구현했을 때 이 정렬은 안정 정렬에 속하며, 분할 정복 알고리즘의 하나이다. 존 폰 노이만이 1945년에 개발했다.
알고리즘 [편집]
합병 정렬은 다음과 같이 작동한다.
- 리스트의 길이가 0 또는 1이면 이미 정렬된 것으로 본다. 그렇지 않은 경우에는
- 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다.
- 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다.
- 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다.
| 이 글은 컴퓨터 과학에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |
|
정렬 알고리즘 |
|
|---|---|
| 이론 | |
| 교환 정렬 | |
| 선택 정렬 | |
| 삽입 정렬 | |
| 합병 정렬 |
합병 정렬 | 스트랜드 정렬
|
| 비(非)비교 정렬 | |