題目: 如數: 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.如何實現迴圈陣列,即 最後乙個元素的下乙...