1.關於斐波那契數列的算法
通常所寫的算法都是遞歸算法,時間複雜度隨着n的增大而指數級增加。考慮以下兩種優化方式:
一、遞歸轉化成循環
int fun(int n){
if (n == 0) return 0;
if (n == 1 || n == 2) return 1;
int f1 = 1, f2 = 1, fn;
for (int i = 3; i <= n; i++) {
fn = f1 + f2;
f1 = f2;
f2 = fn;
}
return fn;
}
二、記憶遞歸通項表達式
,直接帶入即可。