-1
我已經寫了這段代碼,用分而治之的方法找到pow(a,n)。我不確定這個代碼的複雜性。它是n還是nlog n?這段代碼的運行時間是多少?它是n日誌還是n日誌?
pow(a,n)
{
if n->1 return a
i<-floor(n/2)
j<-ceil(n/2)
return pow(a,i) * pow(a,j)
}
在這種情況下乘法的組合步驟的複雜程度是什麼?是1還是n?
這並不意味着它將問題分爲n/2,這意味着日誌級別和每個級別的工作都是n/2。這使它nlogn? –
考慮有p(1,8)時的調用次數:p(1,4)* p(1,4)然後p(1,2)* p(1,2)* p(1,2) * p(1,2)則p(1,1)* p(1,1)* p(1,1)* p(1,1)* p(1,1)* p(1,1)* p(1,1)* p(1,1)。調用總次數爲1 + 2 + 4 + 8 = 15. – jq170727
由於每次調用只做O(1)個工作,因此每個級別的工作不是n/2。 – templatetypedef