我嘗試這樣做許多小時和我保持到達日誌(logn)時間(其中log爲基數爲2),但這並不同意保持它只是log(n)的大師定理。查找THETA:T(N)= T(N ^(1/2))+ 1
2
A
回答
2
碩士定理在這裏並不適用,因爲我們沒有除以常數輸入的每一步。你的回答是正確的。
1
爲了施加主定理,我們必須通過在每個步驟中的常數來劃分。在這種情況下,我們仍然可以使用它,但我們必須改變這個問題。
令k=log n
,其中對數爲基數b
,並且定義爲S(k)=T(b^k)
。然後S(k)=T(b^k)=T(n)=T(n^{1/2})+1=T((b^k)^{1/2})+1=T(b^{k/2})+1=S(k/2)+1
,我們可以應用主定理S
,它告訴我們S(k)=Theta(log k)
。因此,您發現T(n)=T(b^{log n})=S(log n)=Theta(log(log n))
。
0
人們正確地建議你,主人定理在這裏不起作用。 要解決您的問題,您必須開始展開遞歸:。
遞歸將在某個時間點停止,所以我們必須找到一個合理的停止點。嘗試0,1,2,你可以看到2看起來不錯,因爲你可以很容易的解出方程:。
所以遞歸將繼續log(log(n))
次,這是你的時間複雜度。
附:有點難度的復發被解決了here。
相關問題
- 1. T(N)= T(N-1)+ 10/N
- 2. 查找溶液復發:T(N)= 2 T(N/4 +√N)+(√10)N
- 3. 如何解決:T(N)= T(N - 1)+ N
- 4. 求解:T(n)= T(n/2)+ n/2 + 1
- 5. 復發T(n)= T(n - log(n))+ 1
- 6. 如何找到T(n)= T(n-1)+ n + 2的遞推方程?
- 7. 復發關係T(n)= T(n ^(1/2))+ T(nn ^(1/2))+ n
- 8. 明確的復發公式:T(n)= 2 * T(n - 1)+ 4^n + 1
- 9. 復發關係:T(n)= T(n - 1)+ n - 1
- 10. T(n)的的漸近複雜= T(N-1)+ 1/N
- 11. 的復發T(N)= 2T(N/2)+(N-1)
- 12. 遞歸的複雜性:T(n)= T(n-1)+ T(n-2)+ C
- 13. T(n-1)+ 1/lg(n)復發
- 14. T(n)= T(n - sqrt(n))
- 15. 復發:T(n)=(2 + 1/log n)T(n/2)
- 16. 簡單:通過迭代法求解T(n)= T(n-1)+ n
- 17. 解決一個復發的關係T(N)= T(N-√N)+1
- 18. T(n)=(T(n-1)+ n!)的時間複雜度是多少?
- 19. std ::查找類型T ** vs T * [N]
- 20. 解決遞歸T(N)=日誌(T(N-1))+ 1
- 21. 如何找到遞歸關係T(N)= T(N/2)+ N^2
- 22. 復發關係:T(n)= T(n/2)+ n
- 23. 復發T(N)= T(N/3 + 5)+ T(2π/ 3 + 7)+ O(1)
- 24. T(n)= 4 T(n/3)+ lg n
- 25. 復發:T(n)= T(n/2)+ log N
- 26. 使用主定理求解重複T(n)= T(n/2)+ O(1)?
- 27. 確定重複關係的運行時間T(n)= T(n-1)+ n
- 28. 查找複雜T(N)= 4T(N/2)+(N^2)*使用迭代方法
- 29. 如何解決T(N)= T(N-2)+ T(2)+ N遞歸樹
- 30. 使用Python遞歸地從n到n-n + 1遞歸地查找n數到n-n + 1的乘積以降序排列的值使用Python