분할 정복이란 컴퓨터가 큰 데이터를 한번에 처리할 수 없기 때문에, 작은 단위로 나누어
데이터나 문제를 해결(정복) 하는 알고리즘이다. 일단 이론은 다음그림을 보면
이해가 쉽다.
자그럼 다음 과 같이 배열이 있다. 과연 연속된 수들중 가장 큰 연속을 찾고
싶을 때 어떻게 할것인가 ?
정답은 4 -1 3 2 4 -7 10 2 로 연속된 배열이가장 큰배열이다. 이것을 분할 정복을 통해
찾아보자. 우선 그림처럼 가장 작은단위 까지 분할 하고 그수들 중 큰 값을 가져와 서로
비교한다. 재귀 함수를 이용해 왼쪽 오른쪽 가운데 값들의 연속을 작은단위부터 가져와
비교하는 것이다. 위그림과 설명이 이해가 안 간다면 코드를 보자. (파란색 펜으로 그린 배
열은 MidMax 함수로 찾은 최대값)
0 개의 댓글:
댓글 쓰기