합병 정렬은 배열을 앞부분과 뒷부분으로 나누어 각각 정렬하는 작업을 반복하는 알고리즘이다. n개를 log n번 돌리기 때문에 최선, 평균, 최악 모두 O(n log n)의 시간복잡도를 가진다. 1) 배열을 반으로 나눈다. 2) 각 파티션이 두 개의 요소를 가질 때 까지 계속 반으로 나눠준다. 3) 두 개의 요소를 비교하여 더 작은 요소가 앞으로 오도록 한다. 4) 두 개의 파티션을 비교하여 더 작은 요소가 앞으로 오도록 병합한다. 5) 4 반복 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 private static void mergeSo..