
[알고리즘] 합병 정렬이란? (개념, 파이썬 코드)
·
알고리즘
합병 정렬(Merge Sort)이란? 배열을 2개의 하위 배열로 재귀적으로 나눈 후, 다시 각 배열을 합치면서 정렬한다. 분할 정복 (Divide and Conquer)에 해당한다. *분할 정복이란? 문제를 작게 분할한 후 각각을 해결하고, 그 결과를 이용해 전체 문제를 해결하는 알고리즘 방법 주어진 배열을 균등한 크기의 2개의 배열로 분할한다. 분할된 부분 배열을 반복해서 2개의 배열로 분할한다. 더 이상 분할할 수 없을 때, 다시 2개의 배열을 합쳐서 정렬한다. ([3], [1] -> [1, 3]) 재귀적으로 정렬된 부분 배열을 하나로 합치면서 전체가 정렬된 배열을 만든다. ([1, 3], [2, 4] -> [1, 2, 3, 4]) 파이썬으로 구현하기 def merge_sort(arr, start, ..