본문 바로가기

카테고리 없음

[JAVA / 알고리즘] - 분할 정복

분할 정복 (Devide and Conquer)

큰 문제를 작은 부분 문제로 나누어 해결하는 방법

(합병 정렬, 퀵 정렬, 이진 검색, 등...)

 

분할 정복 과정은 다음과 같다.

① 문제를 하나 이상의 작은 부분들로 분할

② 부분들을 각각 정복

③ 부분들의 해답을 통합하여 원래 문제의 답을 구함

 

분할 정복은 문제를 나누어 처리하며 어려운 문제를 해결할 수 있고, 병렬처리를 하는데 이점이 있다는 장점이 있으며,

단점으로는 동일한 코드를 재귀적으로 호출하면서 진행하는 방식이기에 메모리를 많이 사용한다.