Merge Sort는 분할해서 정렬하는 대표적인 알고리즘 중 하나이다. Quick Sort는 최악의 경우 시간 복잡도 O(N^2)이 되는 반면, Merge Sort는 최악의 경우에도 시간복잡도가 O(N * logN)을 유지한다. 하지만, 실제로 O(N * logN)인 상황에서는 Quick Sort가 제일 빨라서 최악의 경우를 만나지 않게끔 코드를 짠다. 이는 다른 게시글에 업데이트 하겠다. Merge Sort의 아이디어는 "반으로 먼저 쪼개고, 정렬한다." 반으로 쪼개는 것은 어렵지 않다. 다음과 같이 수행해보자. 기존에 {35, 13, 2, 7, 11, 44, 12} 배열이 있으면 반으로 계속해서 쪼개 나가는 것이다. 3단계에 걸쳐 모든 부분집합의 크기를 1로 만들었다. 그렇다면 반대로 부분집합들을 모..