關務人員考試關務四等-資訊處理(選試英文)科別計算機概要104 年第 9 題單選題
費氏數列(Fibonacci number)之定義如下:假設 n0=0,n1=1,則 n2=n1+n0=1+0=1,n3=n2+n1=1+1=2,…,ni=ni−1+ni−2。若以遞迴法撰寫程式計算費氏數列,給定一個 n 值,求解費氏數列第 n 項的值,請問時間複雜度為何?
AO(n)
BO(n2)
CO(nlogn)
DO(2n)正確答案
D正確答案
純遞迴費氏數列每次呼叫產生兩個子呼叫,遞迴樹近似滿二元樹,時間複雜度為 O(2n)。
為什麼答案是 D
正確。遞迴樹每層分兩枝,深度約 n,節點數約 2n,故為 O(2n)。