題目如下
uj5u.com熱心網友回復:
個人感覺,n/2遞回會不斷的收斂于0(也就是n除以2的k次方趨于0),k即為時間復雜度。所以,理論上k= log(0)/log(n/2),也就是以n/2為底,對0取對數的結果為時間復雜度可以用下面的程式來模擬遞回
int main() {
double n = 1, sum=0, cnt=0; //可以修改n值代入,查看cnt的變換,cnt為回圈次數,即時間復雜度
while (n!=0) {
sum += n*n;
n /= 2; //n=n/2繼續遞回
cnt++;
}
printf("%lf, %lf\n", sum, cnt);
return 0;
}
uj5u.com熱心網友回復:
log0是可以計算的嗎?題目說找到一個較好的上界,感覺應該不會是log0/log(n/2)吧?uj5u.com熱心網友回復:
我的直覺是n^2轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/135728.html
標籤:新手樂園
上一篇:編程新手求助!
