10. 병합 정렬


10. 병합 정렬

병합 정렬(merge sort)은 하나의 리스트를 정렬하기 위해서 해당 리스트를 n개의 서브리스트로 분할하여 각각을 정렬한 수, 정렬된 n개의 서브리스트로 합병시켜서 정렬시키는 방법입니다. 10-1 일반적인 병합 정렬 알고리즘을 사용해서 리스트 [6, 8, 3, 9, 1, 2, 4, 7, 5]을 정렬하는 과정을 적어 보세요. def merge_sort(a): n = len(a) if n <= 1: return mid = n // 2 g1 = a[:mid] g2 = a[mid:] merge_sort(g1) merge_sort(g2) i1 = 0 i2 = 0 ia = 0 while i1 < len(g1) and i2 < len(g2): if g1[i1] < g2[i2]: a[ia] = g1[i1] i1 += 1 ia += 1 else: a[ia] = g2[i2] i2 += 1 ia += 1 while i1 < len(g1): a[ia] = g1[i1] i1+= 1 ia += 1 whil...


#알고리즘 #파이썬

원문링크 : 10. 병합 정렬