1
假設模塊X需要執行p個單位時間,其中p是常數。查找以下每個算法的複雜度,其中n是輸入數據的大小,q是大於1的正整數。時間複雜度是多少?帶用戶輸入的while循環的Big-O
set i = 1
`while i ≤ n`
`Module X`
`i = q * i`
endwhile
假設模塊X需要執行p個單位時間,其中p是常數。查找以下每個算法的複雜度,其中n是輸入數據的大小,q是大於1的正整數。時間複雜度是多少?帶用戶輸入的while循環的Big-O
set i = 1
`while i ≤ n`
`Module X`
`i = q * i`
endwhile
log(n)
其中對數函數的鹼是q
。
提示:i
呈指數增長。
你能解釋一下嗎?我真的很困惑 –
假設'q = 2'。然後在每次迭代中'i'的增長如下:1,2,4,8,16,32,64 ....因此,直到'i'到達'n'有多少迭代?它是基數爲2的「log(n)」。我們正在做的是用'q'交換2。 – wookie919
這是一個很好的解釋。現在我明白了 –