Divide and Conquer   분할 정복, 분할 통치

(2025-03-03)

분할 후 정복


1. 분할 정복 / 분할 통치 (Divide and Conquer) 전략

  ㅇ 기본 생각
     - 큰 문제를 보다 작은 문제로 분할하는 것은, 복잡함에 대처하는 좋은 수단임

  ㅇ 접근 방식
     - 문제를 작은 문제로 나눠 순환적으로 푸는 하향식 접근 방식
        . 쪼개진 작은 문제들은 원래 문제와 동일한 성격과 특징을 지님
     - 다만, 문제의 해를 구할 때는 상향적으로 구해짐
        . 작은 문제를 해결한 해를 결합하여 원래 문제의 해를 구함
     - 결국, 각 순환 마다, 분할,정복,결합의 단계를 거침


2. 분할 정복의 주요 특징

  ㅇ 분할된 부 문제들은 서로 독립적임
  ㅇ 소 문제는 원래 문제와 단지 크기 만 작아진 동일한 형태 및 성격을 갖음
  ㅇ 통상, 재귀적인 수행을 수반함  ☞ 재귀 프로그램 참조


3. 분할 정복의 종류

  ㅇ 수평 분할
     - 각각을 수평적으로 구분 할당 
     - 例) 입력, 변환, 출력
  ㅇ 수직 분할
     - 제어와 작업을 위아래로 분리시킴
     - 상위수준에서 제어 기능, 하위수준에 실제 작업 처리 지시


4. 알고리즘 적용 例)

  ㅇ (알고리즘)
     - 이진 탐색 (Binary Search)
        . 정렬된 배열에서 특정 값을 찾기 위해 검색 범위를 절반으로 줄여가며 탐색
     - 퀵 정렬 (Quick Sort)
        . 배열피벗 기준으로 작은 값과 큰 값으로 나눈 후, 각각을 재귀적으로 정렬
     - 병합 정렬
        . 배열을 절반으로 나누고, 각각을 재귀적으로 정렬한 후, 두 정렬된 배열을 병합
     - 선택 문제 (최대값/최소값 찾기, n번째 작은 원소 찾기 문제 등)
        . 퀵 정렬과 비슷한 방식으로, 피벗을 선택하고 이를 기준으로 작은 값과 큰 값으로 나눔
        . 찾고자 하는 원소가 포함된 부분만 재귀적으로 탐색하여 효율성을 높임

  ㅇ (수치해석) 
     - 큰 선형 시스템 풀기 
        . 큰 행렬을 여러 작은 블록으로 나누고, 각 블록을 재귀적 처리하는 블록 행렬 분해 기법
     - 함수근 찾기
        . 이분법이 분할 정복 전략의 전형적인 예로써, 
        . 구간을 반복적으로 반으로 나누어 함수의 부호 변화가 있는 구간을 찾아 을 결정
     - 수치 적분 
        . 적분 구간을 여러 작은 구간으로 분할하여 각 구간에서 근사값을 구한 뒤 결과를 합산하는 등

알고리즘 전략
1. 알고리즘 설계   2. Brute Force   3. 분할 정복법   4. 탐욕 알고리즘   5. 동적 계획법   6. 백트래킹  
소프트웨어공학 기초
1. 소프트웨어 공학   2. 버전 관리   3. 요구 분석   4. 소프트웨어 설계   5. 소프트웨어 아키텍처   6. CBD (컴포넌트기반개발)   7. MDA (모델주도형구조)   8. 순기/생명주기   9. 분할 후 정복  

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 ( 차재복, 건강 문제로 휴식중 )
[알고리즘 전략]1. 알고리즘 설계   2. Brute Force   3. 분할 정복법   4. 탐욕 알고리즘   5. 동적 계획법   6. 백트래킹  

[소프트웨어공학 기초]1. 소프트웨어 공학   2. 버전 관리   3. 요구 분석   4. 소프트웨어 설계   5. 소프트웨어 아키텍처   6. CBD (컴포넌트기반개발)   7. MDA (모델주도형구조)   8. 순기/생명주기   9. 분할 후 정복  

  1. Top (분류 펼침)      :     1,604개 분류    6,618건 해설