분할 계약

분할 정복 계약 기준

분해, 기저, 병합, 반례를 같은 기준으로 묶어야 재귀 깊이가 커져도 결과를 추적할 수 있습니다. 각 재귀 호출은 “무슨 범위를 받아 어떤 결과를 돌려주는지” 계약이 있어야 합니다.

분해

하위 문제 범위가 겹치거나 빠지지 않는지 인덱스로 검산하고, 중간값 계산이 overflow를 만들지 않게 합니다.

기저

길이 0과 1에서 즉시 반환되는지 먼저 테스트해 무한 재귀와 빈 병합을 막습니다.

병합

잔여 append, 안정성, 중복 조건을 요구사항과 맞춥니다.

반례

이미 정렬, 역정렬, 중복 다수, 홀수 길이 입력을 병합 로그와 함께 봅니다.