분할정복(Divide and Conquer)
·
📚알고리즘/알고리즘 이론
● 분할정복(Divide and Conquer) 한번에 해결하기에 불가능하거나 매우 오래걸리는 문제를 작은 문제로 나눠서(분할) 해결하고 다시 결합하여(정복) 문제를 해결하는 방식 **앞서 포스팅 했던 이분탐색 또한 분할정복을 사용한 알고리즘 Merge sort(병합정렬) 분할정복을 이용한 정렬방법으로 O(NlogN)의 시간복잡도를 가지며 버블정렬, 삽입정렬, 선택정렬 보다 실행시간이 빠르다. (파이썬에 내장되있는 sort함수도 병합정렬) 병합정렬을 통해서 분할정복이 어떤식으로 이루어지는지 알아보자. 정렬을 하기 위해 임의의 무작위 배열 arr = [3, 25, 1, 75, 42, 100, 63, 38] 이 있다고 하자. 이 배열의 Divide 과정은 아래그림과 같다. 배열의 중간을 기준으로 더 이상 나..