요소가 2개 이상인 경우,
1. 앞 부분을 병합 정렬한다.
2. 뒷 부분을 병합 정렬한다.
3. 앞 부분과 뒷 부분을 병합한다.
추가 공간을 필요로 하기 때문에 제자리 정렬이 아니다.
안정적이다.
이진트리로 대입해서 생각해보면,
이진트리의 높이, 즉, 반으로 나눗 횟수, 다시 병합할 횟수, stage 수 등등 -> logN
어느 한 레벨에서 노드 2^M개, 한 노드에 있는 요소수 N*(1/2)^M개이므로 한 레벨에서
비교에 대한 복잡도는 O(2^M * N*(1/2)^M) -> O(N)이다.
따라서 O(NlogN)의 시간복잡도를 가진다.
'자료구조 & 알고리즘 > 알고리즘' 카테고리의 다른 글
그래프 (0) | 2022.03.31 |
---|---|
카운팅 정렬 (도수 정렬, 계수 정렬) (0) | 2021.11.20 |
셸 정렬 (0) | 2021.11.19 |
삽입 정렬 (0) | 2021.11.16 |
선택 정렬 (0) | 2021.11.16 |
댓글