기존의 데이터 집합단위를 더이상 나눌수 없는 크기가 될때까지 분할한 뒤 임시 저장공간에 순서를 저장하며 재조합하며 정렬하는 방식 평균 시간복잡도는 분할단계로 집합을 절반씩 분할하므로 O(logN) 의 시간복잡도를 갖고 병합단계 모든요소가 비교되므로 O(N) 의 시간복잡도를 갖게 되므로 전체적인 시간복잡도는 O(N log N) 로 안정적인 성능을 제공하지만 주어진 집합요소(배열 , 리스트)가 있을때 임시로 저장해둘 똑같은 크기의 집합요소가 더 필요하게 된다. 또한 해당 알고리즘 구현시 데이터들을 다시 함수에 넣어줘야하므로 재귀에 대한 개념도 필요하며 두개의 집합으로만 정렬된 데이터를 구현하기위해 여러개의 포인터를 다뤄야하므로 구현이 조금 복잡할수 있다. 처음 알고리즘을 접하게될때 그림을 보고 조금 혼란스러..