병합 정렬 (Merge Sort) 여러 개의 정렬된 자료의 집합을 병합하여 한 개의 정렬된 집합으로 만드는 방식 분할 정복 알고리즘 활용 자료를 최소 단위의 문제까지 나눈 후에 차례대로 정렬하여 최종 결과를 얻어냄 top-down 방식 시간 복잡도 : O(n log n) 병합 정렬 과정 [69, 10, 30, 2, 16, 8, 31, 22] 를 병합 정렬하는 과정 분할 단계 : 전체 자료 집합에 대하여, 최소 크기의 부분집합이 될 때까지 분할 작업을 진행 병합 단계 : 2개의 부분집합을 정렬하면서 하나의 집합으로 병합 8개의 부분집합이 1개로 병합될 때까지 반복 분할 과정 def merge_sort(arr): # 리스트 길이가 1이면 최소 단위이므로 종료 if len(arr) == 1: return ar..