2017-04-01 57 views
1

假設模塊X需要執行p個單位時間,其中p是常數。查找以下每個算法的複雜度,其中n是輸入數據的大小,q是大於1的正整數。時間複雜度是多少?帶用戶輸入的while循環的Big-O

set i = 1 
    `while i ≤ n` 
     `Module X` 
     `i = q * i` 
    endwhile 

回答

1

log(n)其中對數函數的鹼是q

提示:i呈指數增長。

+0

你能解釋一下嗎?我真的很困惑 –

+0

假設'q = 2'。然後在每次迭代中'i'的增長如下:1,2,4,8,16,32,64 ....因此,直到'i'到達'n'有多少迭代?它是基數爲2的「log(n)」。我們正在做的是用'q'交換2。 – wookie919

+1

這是一個很好的解釋。現在我明白了 –