와 같이 이상한 재발이 발생할 수 있습니다.
당신이 나와 같다면, 마스터 정리를 사용할 수 없다는 것을 알게 될 것입니다. " 흠 ... 아마도 반복 트리 분석이 효과가있을 것입니다. " 그러면 나무가 엄청나게 빨라지기 시작합니다. 인터넷에서 검색 한 후 Akra-Bazzi 방법 이 작동합니다! 그런 다음 실제로 조사를 시작하고 모든 수학을하고 싶지 않다는 것을 깨닫습니다. 이 시점까지 나와 같은 경험을했다면 더 쉬운 방법이 있다는 것을 알게되어 기쁩니다.T(n)={c2T(n5)+4T(n7)+cnn<7n≥7
고르지 못한 분할 정리 1 부
와 를 양의 상수라고 하자 .ck
그런 다음 를 과 같은 양의 상수로 .{a1,a2,…,ak}∑k1ai<1
또한 위의 예와 같이 양식이 반복되어야합니다.
T(n)T(n)≤c≤cn+T(a1n)+T(a2n)+…T(akn)0<n<max{a−11,a−12,…,a−1k}n≥max{a−11,a−12,…,a−1k}
청구
그런 다음 이라고 주장합니다. 여기서 는 상수입니다 (예 : 무정형 선형).T(n)≤bnb
b=c1−(∑k1ai)
유도에 의한 증거
기준 :n<max{a−11,a−12,…,a−1k}⟹T(n)≤c<b<bn
유도 : 어떤 마찬가지 가정 , 우리는이n′<n
T(n)≤cn+T(⌊a1n⌋)+T(⌊a2n⌋)+⋯+T(⌊akn⌋)≤cn+b⌊a1n⌋+b⌊a2n⌋+⋯+b⌊akn⌋≤cn+ba1n+ba2n+⋯+bakn=cn+bn∑1kai=cn−cn∑k1ai1−(∑k1ai)+cn∑k1ai1−(∑k1ai)=cn1−(∑k1ai)=bn□
그런 다음 입니다.T(n)≤bn⟹T(n)=O(n)
예
T(n)={c2T(n5)+4T(n7)+cnn<7n≥7
먼저 재귀 호출 내부의 계수가 1보다 작은 지 확인합니다.
1>∑1kai=15+15+17+17+17+17=25+47=3435
그런 다음 기본 사례가 계수의 역수의 최대 값보다 작은 지 확인합니다.
n<max{a−11,a−12,…,a−1k}=max{5,5,7,7,7,7}=7
이러한 조건이 충족되면 여기서 는 다음과 같습니다.
따라서 다음과 같습니다 :
T(n)≤bnbb=c1−(∑k1ai)=c1−3435=35c
T(n)∧T(n)∴T(n)≤35cn≥cn=Θ(n)
고르지 못한 분할 정리 2 부
마찬가지로 때 경계를 증명할 수 있습니다 . 증명은 거의 같은 형식을 따릅니다.∑k1=1
하자 그리고 일 양성되도록 상수 .ckk>1
그런 다음 를 과 같은 양의 상수로 .{a1,a2,…,ak}∑k1ai=1
또한 위의 예와 같이 양식이 반복되어야합니다.
T(n)T(n)≤c≤cn+T(a1n)+T(a2n)+…T(akn)0<n<max{a−11,a−12,…,a−1k}n≥max{a−11,a−12,…,a−1k}
청구
그런 다음 ( 는 재귀 트리의 분기 인자 이므로 base 선택합니다 ) 여기서 및 는 상수입니다 (예 : ) ) 그런 :T(n)≤αnlogkn+βnlogkkαβ
β=c
및
α=c∑k1ailogka−1i
유도에 의한 증거
기준 :n<max{a−11,a−12,…,a−1k}⟹T(n)≤c=β<αnlogkn+βn
유도 : 어떤 마찬가지 가정 , 우리는이n′<n
T(n)≤cn+T(⌊a1n⌋)+T(⌊a2n⌋)+⋯+T(⌊akn⌋)≤cn+∑1k(αainlogkain+βain)=cn+αn∑1k(ailogkain)+βn∑1kai=cn+αn∑1k(ailogkna−1i)+βn=cn+αn∑1k(ai(logkn−logka−1i))+βn=cn+αn∑1kailogkn−αn∑1kailogka−1i+βn=αn∑1kailogkn+βn=αnlogkn+βn□
그런 다음 입니다.T(n)≤αnlogkn+βn⟹T(n)=O(nlogn)
예
이전 예제에서 조금만 사용하도록 수정하자 :
T(n)={c2T(n5)+4T(n7)+T(n35)+cnn<35n≥35
먼저 재귀 호출 내부의 계수가 1인지 확인합니다.
1=∑1kai=15+15+17+17+17+17+135=25+47+135=3535
그런 다음 기본 사례가 계수의 역수의 최대 값보다 작은 지 확인합니다.
n<max{a−11,a−12,…,a−1k}=max{5,5,7,7,7,7,35}=35
이러한 조건이 충족되면 여기서 이고 는 다음과 같은 상수입니다.
따라서 우리는 다음을 가지고 있습니다 :
T(n)≤αnlogn+βnβ=cαb=c∑k1ailogka−1i=c2log755+4log777+log73535≈1.048c
T(n)∴T(n)≤1.048cnlog7n+cn=O(nlogn)