병합 정렬 Merge Sort Merge Sort 시간복잡도는 Worst - O(NlogN), Average - O(NlogN), Best - O(NlogN) Merge Sort의 경우 원래 리스트의 크기만큼의 추가공간이 필요하다. 입력 Data의 크기가 클 경우 Overhead가 증가할 수 있다. Divide & Conquer 단계를 수행하므로 시간 복잡도는 LogN이다. Merge Sort는 3단계로 구성된다. 각 리스트를 절반으로 나누는 Divide 단계 나눠진 리스트를 정렬하는 Conquer 단계 정렬된 리스트를 하나로 합치는 Combine 단계 def merge_sort(data): result = [] # 중간 index 구하기 mid = (len(data))//2 # 재귀 종료 조건 if l..