분할과 정복의 생각의

기본적인 아이디어는 분할하고 정복하는 것입니다 무엇입니까?

디자인 분할과 정복이 큰 문제를 직접 해결하기 어려울 것입니다, 작은 규모 같은 문제들로 나누어 각 구분, 분할 통치 있도록.

더 정확하게는, 크기 N의 문제가 분해 K 작은 하위 문제로, 원래의 문제 등이 독립적으로 동일한 하위 문제. 재귀 적 문제점을 해결 한 후 하위 문제, 드 병합을 원래 문제의 해결책을 얻을 수 있습니다.

분할하고 어떤 상황에서 정복 사용?

분할하고 문제가 일반적으로 해결 다음과 같은 특징이 될 수 정복 :

1) 문제의 크기를 용이하게 해소 할 수있는 어느 정도 감소된다;

2) 문제는 문제가 작아 일본어와 같은 문제들로 분해 될 수있다;

3) 문제점의 해결을 위해 조합 될 수 분해 문제의 해법을 이용하여 서브 문제;

4) 각 서브 문제 즉, 서브 - 서브 문제 중 공통적 인 문제를 포함하지 않는 문제의 분해는 무관하다.

바이 항목에서 보조 참조 (탐욕 알고리즘과 동적 프로그래밍을 이해 한 후에 다시 쉽게 배울 수) :

문제의 원래의 솔루션에 결합 될 수있는 문제의 해결이 기능이없는 경우, 욕심 방법 또는 동적 프로그래밍 방법을 고려 중요하다;

이 시간 분할을 사용 극복 될 수 있지만, 분할 컨커의 효율 특성에 관련된 독립적 인 서브 문제는, 각 서브 질문 불필요 요법, 공통 서브 - 문제의 반복 용액을 많이 할 작업의 분할 무관하지 않은 경우이지만 동적 프로그래밍 방법 일반적으로 좋은.

페어 프로그래밍 경험

표현과 팀 동료의 의사 소통의 과정에서 발생하는 장애물은 다음 포인트는 취소 할 수있는 방법에 대해 생각합니다.

나는 프로그램, 능력 디버깅하는 미래 매듭 주로 언어 적 능력, 다른 사람의 코드를 읽고 이해하는 능력을 향상시킬 수 있도록 노력하겠습니다.

 

추천

출처www.cnblogs.com/Texas/p/11681980.html