2015-03-02 63 views
1

我真的對解決上述復發感到沮喪。我試圖通過使用主方法來解決它,但我只是沒有完成...問題解決復發T(n)= 4T(n/4)+ 3log n

我有一個遞歸算法,需要3log n次(三個二進制搜索)問題,每個問題都有n/4的大小,然後單獨解決,直到n小於輸入給定的某個常量。所以,我得到這個復發的結果:

T(n) = 4*T(n/4) + 3*log(n) 

Base-Case if n < c (c = some constant given by program input): 

T(n) = 1 

我試圖找到我的遞歸程序的漸近運行時間,並希望通過使用主定理來解決它。任何人都可以告訴我,如果有可能在這種再發生中使用主定理,並且如果是的話,那麼主定理是哪一種?

所有幫助表示讚賞,謝謝。

+2

你的問題非常難以捉摸;我很難理解你想要達到的目標,哪些方面沒有奏效,或者你爲此嘗試過什麼。請更清楚一點。一些代碼示例將有助於! – Pandrei 2015-03-02 16:49:31

+0

@Pandrei我想分析我的遞歸算法的運行時間,並想知道如果你可以通過使用主定理來解決這個遞歸循環,並且如果我可以使用它,那我該如何解決循環。 – 2015-03-02 16:57:26

+0

@ChristophGerl主定理允許您使用大O表示法來計算遞歸算法的運行時間。你是什​​麼意思解決復發? – Pandrei 2015-03-02 17:03:24

回答

2

T(n) = O(n),因爲4個鹼基對數的對數是1,而3 * log(n)是O(n^0.5)(0.5 < 1)。它對應於here描述的主定理的第一種情況。

+0

非常感謝。我認爲n^c的常量需要是一個整數。 – 2015-03-02 17:09:43

相關問題