遞迴小題中的空間換時間思想

2022-08-29 11:51:12 字數 541 閱讀 5395

題目: 如數: 1  1  2  3   5   8   13   21  34  55 ......

序號: 0  1  2  3   4   5   6     7    8    9 ......

由使用者輸入序號,

輸出對應的數值。

效果:實現**:

#include int bian(int

num);

//static int shu[100]=;

intmain()

return0;

}/*重複計算了太多步驟,當序號較大時耗時太多*/

/*int bian( int num )

else

return 0;}*/

/*優化後,將計算過的數值儲存起來,用空間換時間的思想*/

int bian( int

num )

;//注意static

if (!shu[num])

else

return0;

}

小結:第一次遇到空間換時間的小例子!

JAVA空間換時間以及時間換空間的例子

演算法的好壞有兩個指標 需要的記憶體空間 可以 理解為執行 需要的記憶體空間 執行的時間 可以簡單的理解為 需要執行的步數 程式的設計要不就是時間換空間,要不就是用空間去換時間。並且時間和空間是可以進行相互轉化的 對於執行的慢的程式,可以通過消耗記憶體 即構造新的資料結構 來進行優化。而消耗記憶體的...

以空間換時間的計數排序

我們前面學習的插入 歸併 堆和快速排序都是比較排序,即在排序的最終結果中,各元素的次序依賴於它們之間的比較。我們說過比較排序有時間下界,即nlgn,如果我們需要乙個時間複雜度為o n 的排序演算法,要怎麼辦?計數排序就是比較好的選擇。計數排序的基本思想是 對每乙個輸入的元素x,確定小於x的元素個數。...

刷題中優化空間和時間的小tips

1.用parseint代替valueof,減少裝箱和拆箱操作 2.用switch替代if else if s.equals 這裡用到增強型 for 迴圈不能同時判斷,需要再次判空 而普通 for 迴圈則可寫成 stack.isempty s.equals 3.如何實現迴圈陣列,即 最後乙個元素的下乙...