2012-10-17 92 views
0

這是關於算法分析: 說,有問題的運行時間是:主方法 - 分析

T(n) = { 1, for n == 1 | T(n/3) + THETA(1), for n > 1} 

現在,這是THETA(log base3 n)

但是,如果我用法師的方法,我評估爲THETA(log base2 n),使用案例二

我該如何從主方法得到正確答案?

+1

THETA(log base3 n)等於THETA(log base2 n) – fgb

+0

這怎麼可能?將問題分成原始問題的三分之一的算法比分成兩半的算法快。所以,THETA(log base2 n)比THETA(log base3 n)慢。 – Flipper

+0

@jaskirat:是的,但只是一個不變的因素。 THETA不關心這些。 – hammar

回答

1

它們是一樣的。對於任何兩個基地ab,Θ(loga n) = Θ(logb n),所以我們通常根本不提基地,只是說Θ(log n)

這是因爲loga n = (1/logb a) * logb n,所以它們相差1/logb a,相對於n是不變的。

+0

但是我們在Big-Oh中使用base,對吧?那麼,Big-oh(log base2 n)與Big-oh(log base3 n)不同? – Flipper

+0

相同的論點適用於'O(log n)'。這仍然是一個不變的因素,而且這些因素也會隨着Big-O消失。 – hammar

+0

http://stackoverflow.com/questions/13430256/understanding-master-theorem/30946870#30946870 – dharam