簡體   English   中英

找到這個涉及樓層函數的遞歸公式的時間復雜度 Big-Θ

[英]Finding time complexity Big-Θ of this recursive formula involving floor function

我試圖找到這個算法的時間復雜度(Big-Θ):

Recursion(n):
   while n > 1:
      n = floor(n/2)
      Recursion(n)

通過考慮最壞的情況,即 n 是 2 的冪,我找到了 O(n) 的上限。

但是,我無法為此找到下限(Big-Ω)。 我的直覺是這也是 Ω(n),但我不知道如何用地板函數來顯示它。

有什么建議? 謝謝!

編輯:我不相信的主要事情是 T(n/2) 等價於 T(floor(n/2))。 對於這個算法,如何證明這一點?

floor函數在恆定時間O(1)執行其操作。 因此,您可以忽略它/將其視為常量。 下面我們來分析一下算法的時間復雜度:

T(n) = T(n/2) + 1 (floor operation)
T(n/2) = T(n/4) + 1
...
T(2) = T(1) + 1    --> T(1) = constant

T(n) = T(n/4) + 2
T(n) = T(n/8) + 3
...
T(n) = T(n/2^k) + k    2^k = n therefore k=log(n)
T(n) = T(1) + log(n)
T(n) = log(n)

我們可以得出結論T(n)θ(log(n))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM