2014-11-12 4 views
1

나는 다음과 같은 재귀 함수의 점근 시간 복잡도를 분석하기 위해 요청을받은 : 내가 증명할 수 있었다점근 시간 복잡도 (쎄타)

for-all k ≥ 1: 
T(n) = n + T(n/2) + T(n/4) + T(n/8) + .... + T(n/2^k) 

:
T(n) = O(n⋅log n)T(n) = Ω(n),
그러나 나는 더 엄격한 경계 (Big Theta)를 찾고있다. 모든

+0

수식은 'T'의 표현식이 무한대로 읽습니다. 맞습니까? – Ordous

+0

마지막 가수는'T (n/2^k)'이므로 함수는 무한하지 않습니다. – user111893

+0

그러나 당신이 쓴 것처럼 "k"는 한정되어 있지 않습니다 : "for-all k> = 1" – Ordous

답변

0

첫째 :
나는 "를위한 모든 K> = 1"이런 식으로 이해 : k = 1에 대한 k = m2m-1 ≤ n ≤ 2m에.
이렇게 기본으로 m = log₂(n)이 성립합니다.

 
T(n) = n + Σk=1,...,m T(n/2k) 
    = n + T(n/2) + Σk=2,...,m T(n/2k) 
    = n + n/2 + 2⋅Σk=2,...,m T(n/2k) 
    = ... 
    = n + Σk=1,...,m k⋅n/2k 
    = n + n⋅Σk=1,...,m k/2k 
    = n + n⋅(2 - 2-mm - 21-m) 
    ≤ n + 2⋅n 
    = 3n 

그래서 T(n)Θ(n)에 있습니다

내 계산에서보세요.

알림 :
으로 Σk=1,...,m k/2k을 근사 할 수도 있습니다.
여기에 limm → ∞s(m) = 2도 있습니다.