[英]complexity of the function T(N)=T(n/2)+2^n
我是一名學生在大學學習算法課程。 我知道如何應用一些遞歸技術來找到更簡單函數的運行成本,但是這個問題中的2^n
給我帶來了麻煩。 這是我嘗試應用主定理的內容
a=1
, b=2
n^log2(1)= n^0.65
這導致n^0=1
我知道它必須是f(N)
多項式時間,即2^n
但我不知道它是如何與2^n
。
我嘗試了遞歸樹,但它太復雜了。
您可以應用此處描述的主定理的第三種情況,因為f(n)等於Ω(nloga)。
Here,
f(n) = 2^n , and
Ω(n^log 1) = Ω(1)
2^n = Ω(1)
,因為對於某些常數c> 0且所有足夠大的n,2 ^n≥c* 1。
所以T(n)= f(n)
T(n)= O(2 ^ n)
這很容易做到沒有主定理:
T(n) = T(n / 2) + 2^n)
= T(n / 4) + 2^(n / 2) + 2^n
= ...
< 2^0 + 2^1 + ... + 2^n
= [2^(n + 1) - 1] / (2 - 1) (sum of a geometric progression formula)
=> T(n) = O(2^(n + 1)) = O(2*2^n) = O(2^n)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.