Perché $ t (n)= 3t (n / 4) + n \ log n $ solvibile con il metodo master ma $ t (n)= 2t (n / 2) + n \ log n $ non è?
-
28-09-2020 - |
Domanda
Sto avendo difficoltà a capire perché la recidiva
$$ t (n)= 3t (n / 4) + n \ log n $$
è risolvibile con il metodo principale ma
$$ t (n)= 2t (n / 2) + n \ log n $$
non è?
Nonostante sia molto simile, tranne i valori del coefficiente di coefficiente di coefficiente di coefficiente di coefficiente di coefficiente di coefficiente di coefficiente di coefficiente di coefficiente di coefficiente "> $ A $ A $ 'e taglia taglierina' $ B $ '.
Capisco che la funzione di lavoro " $ f (n) $ 'deve essere polinomia più grande / inferiore a $ n^ {\ log_ba} $ .E che in seconda ricorrenza $ n ^ {\ log_22}= n $ non è polinomia paragonabile a $ f (n)=n \ log n $ .Quindi il metodo principale non può essere applicato.Ma perché può essere applicato alla prima recidiva?
Ho trovato questi esempi in CLRS INTRO per il libro Ago, e non riesco a capirli.Puoi spiegare.
Soluzione
Usiamo il teorema master come indicato su wikipedia . Considera una recidiva $$ T (n)= at (n / b) + f (n). $$ Ci sono diversi casi da considerare:
- .
- se $ f (n)= o (n ^ c) $ per $ c <\ log_b a $ < / span> quindi $ t (n)=theta (n ^ {\ log_b a}) $ .
- se $ f (n)=theta (n ^ {\ \ log_b a} \ log ^ kn) $ per $ k \ geq 0 $ quindi $ t (n)=theta (n ^ {\ \ log_b a} \ log ^ {k + 1} n) $ < / span>.
- se $ f (n)=omega (n ^ c) $ per $ c> \ log_b a $ e $ f (n) $ è "ragionevole" allora $ t (n)=theta (f (n)) $ .
- se $ f (n)=theta (n ^ {\ \ log_b a} \ log ^ kn) $ per $ k> - 1 $ quindi $ t (n)=theta (n ^ {\ log_b a} \ log ^ {k + 1} n) $ < / span>.
- se $ f (n)=theta (n ^ {\ \ log_b a} \ log ^ kn) $ per $ k= - 1 $ quindi $ t (n)=theta (n ^ {\ log_b a} \ log \ log n) $ .
- se $ f (n)=theta (n ^ {\ \ log_b a} \ log ^ kn) $ per $ k <- 1 $ quindi $ t (n)=theta (n ^ {\ log_b a}) $ .
- $ a= 3 $ , $ B= 4 $ , $ F (n)= n \ log n $ .
- $ a= 2 $ , $ b= 2 $ , $ F (n)= n \ log n $ .
Nel terzo caso, una funzione è "ragionevole" se esistono $ k <1 $ e $ n $ tale che per $ n \ geq n $ , abbiamo $ AF (N / B) \ Leq KF (n) $ .
Ci sono anche estensioni del secondo caso che gestiscono tutti i valori di $ k $ :
- .
.
Ora torna alle tue recidive. I valori di $ A, B $ e $ f (n) $ sono:
- .
nella prima ricorrenza, $ f (n)=omega (n ^ 1) $ , dove $ 1> \ log_4 3 $ , e così, in base al terzo caso del teorema master, $ f (n)=theta (n \ log n) $ (Devi verificare che la funzione $ n \ log n $ è ragionevole).
nella seconda ricorrenza, $ f (n)=theta (n ^ 1 \ log ^ 1 n) $ , dove $ 1=log_2 2 $ , e così, in base al secondo caso del teorema master, $ f (n)=theta (n \ log ^ 2 n) $ .