Ana Teorem'in bahsettiğiniz üç vakası, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest ve Clifford Stein tarafından Algoritma Girişinde kanıtlanmıştır (2. Baskı, 2001).
Doğru söz konusu tekrarlanması bu Örnek 2, Örnek 3 arasında düştüğü görülmektedir f(n)=nlogn daha hızlı büyüyen n ama daha yavaş n1+ε herhangi ε>0 .
Bununla birlikte teorem bu tekrarlamayı kapsayacak şekilde genelleştirilebilir. Düşünmek
Durum 2A: Bazı k ≥ 0 için f(n)=Θ(nlogbalogkbn)
düşünün .k≥0
Bu durum k=0 olduğunda Durum 2'ye düşer . Tekrarlama ağacının her dalı boyunca f(x)Θ(logbn) kez eklendiği sezgisel olarak açıktır . Daha resmi bir kanıt taslağını aşağıda bulabilirsiniz. Nihai sonuç şudur:
T(n)=Θ(nlogbalogk+1bn)
.
Gelen algoritmalara giriş bu açıklama bir egzersiz olarak bırakılmıştır.
Bu ifadeyi söz konusu tekrarlamaya uygulayarak nihayet elde ederiz
T(n)=Θ(n⋅log2n).
Ana Teorem hakkında daha fazla ayrıntı mükemmel (imho) Wikipedia sayfasında bulunabilir .
@Sdcvvc'in, Vaka 3'ün burada uygulanmadığını kanıtlamak için yorumlarda belirttiği gibi, L'Hospital'in şöyle diyor:
limx→cf(x)g(x)=limx→cf′(x)g′(x)
c çevresinde farklılaşabilen f(x) ve g(x) fonksiyonları için . Bu uygulama , f ( n ) = n- log n, ve g ( n ) = n- 1 + ε bir o gösterebilir log n ∉ İçeride ISTV melerin RWMAIWi'nin ( n 1 + ε ) .cf(n)=nlogng(n)=n1+εlogn∉Θ(n1+ε).
Durum 2A için Ana Teorem Kanıtı'nın taslağı.
Bu, Algoritmalara Giriş'ten kanıtın bazı bölümlerinin gerekli değişikliklerle çoğaltılmasıdır .
İlk önce aşağıdaki Lemmayı kanıtlıyoruz.
Lemma A:
Bir işlev düşünün
g(n)=∑j=0logbn−1ajh(n/bj)
burada h(n)=nlogbalogkbn.Sonra
g(n)=nlogbalogk+1bn.
Korumalı:
ikame h(n) için ifadeye g(n) bir alabilirsiniz
g(n)=nlogbalogkbn∑j=0logbn−1(ablogba)j=nlogbalogk+1bn.
QED
Eğer n , b bir nüks verdiği kesin bir kuvvetse
T(n)=aT(n/b)+f(n),T(1)=Θ(1)
biri olarak yeniden yazabilir
T(n)=Θ(nlogba)+∑j=0logbn−1ajf(n/bj).
f(n)Θ(nlogbalogkbn)Θ
T(n)=Θ(nlogbalogk+1bn).
nb