병합 정렬
- 분할 정복 방식을 사용해 데이터를 분할하고 분할한 집합을 정렬하며 합치는 알고리즘
- 시간 복잡도는 O(nlogn)이다.
병합 정렬 과정
- 최초에 가장 작은 그룹으로 나눈다.
- 2개씩 그룹을 합치며 오름차순 정렬한다.
- 다시 2개씩 그룹을 합치며 정렬한다.
- 위의 과정을 거치면 그룹 전체의 오름차순 정렬이 완료된다.
2개의 그룹을 병합하는 과정
- 투 포인터 개념을 사용하여 왼족, 오른쪽 그룹을 병합한다. 왼쪽 포인터와 오른쪽 포인터의 값을 비교하여 작은 값을 결과 배열에 추가하고 포인터를 오른쪽으로 1칸 이동시킨다.
문제 풀이
https://yurison.tistory.com/344
https://yurison.tistory.com/543
'공부 기록 > 알고리즘' 카테고리의 다른 글
Do it! 알고리즘 코딩테스트 with JAVA - (13) DFS(깊이 우선 탐색) (0) | 2023.08.04 |
---|---|
Do it! 알고리즘 코딩테스트 with JAVA - (12) 기수 정렬 (0) | 2023.08.03 |
Do it! 알고리즘 코딩테스트 with JAVA - (10) 퀵 정렬 (0) | 2023.08.02 |
Do it! 알고리즘 코딩테스트 with JAVA - (9) 삽입 정렬 (0) | 2023.08.02 |
Do it! 알고리즘 코딩테스트 with JAVA - (8) 선택 정렬 (0) | 2023.08.02 |