[JS/CodingTest] 병합 정렬
패스트캠퍼스 온라인 강의
Part1.Ch03-04. 병합 정렬
병합정렬이란? (O(NlogN))
- 자주쓰고 잘 이용됨.
- 전형적인 분할 정복 알고리즘이다.
분할정복이란?
- 분할 : 큰 문제를 작은 문제로 쪼갠다.
- 정복 : 작은 문제를 해결한다.
- 조합 : 부분 답을 이용해 큰 문제를 해결한다.

분할정복의 단점
- 일반적으로 재귀함수를 사용하는데, 함수 호출이 늘어나며
오버헤드가 생길 수 있다. ** 오버헤드란? 제어프로그램이 시스템 지원을 위해 대기하는 시간
병합 정렬 동작
ㄱ. 분할 : 정렬할 배열을 같은 크기로 2개의 배열로 분할 ㄴ. 정복 : 부분 배열 정렬 O(N) => 첫번째 원소부터 하나씩 확인한다. ㄷ. 조합 : 하나의 배열로 합친다.

-> 각 배열에 원소가 하나만 남았다는 것이 정렬되어있다는 것이다.

-> 정복 : 각각의 배열을 (0)에서부터 비교하고 더 작은 것들을 합친 배열에 넣고 index +1 을 해준다.
- 단점 : 정복에서 임시 배열이 필요하다.
병합 정렬 소스코드
