o(1): constant complexity: constant 常數複雜度
o(log n): 對數複雜度
o(n): 線性時間複雜度
o(n^2): 平方
o(n^3): 立方
o(2^n): 指數
o(n!): 階乘
隨著現在儲存空間的便宜, 很多情況下, 我們是願意用空間複雜度來換取時間複雜度的, 因為記憶體, 磁碟等這些和程式演算法比起來, 真的是太便宜的, 大家都是可以接收到的, 而寫出好的程式, 這個真的是需要工夫的。
總的一點就是, 人工太貴了, 磁碟, 記憶體,就不太值錢, 所以, 可能追求時間複雜度比較低的程式
1. o(1)
int n= 1000;
system.out.println("hello " + n);
2. o(n)
for(int i = 0; i<=n; i++)
3. o(n^2)
for(int i = 0; i<=n; i++)
}
4. o(log(n))
or(int i = 1; i5. o(k^n)
for(int i = 1; i<= math.pow(2, n); i++)
6. o(n!)
for(int i = 1; i<=factorial(n); i++)
我們只需要根據最高位進行計算, 常數進行忽略就好了。
二分樹查詢: o(logn)
二叉樹的遍歷: o(n)
排序的查詢:一維: o(logn); 二維: o(n)
快排, 規定排序 o(nlogn)
時間複雜度計算方法
o 1 constant complexity constant 常數複雜度 o log n 對數複雜度 o n 線性時間複雜度 o n 2 平方 o n 3 立方 o 2 n 指數 o n 階乘 隨著現在儲存空間的便宜,很多情況下,我們是願意用空間複雜度來換取時間複雜度的,因為記憶體,磁碟等這些和...
時間複雜度計算方法
1.形如 t n a t n b f n 的時間複雜度計算方法 有一種方法叫做主方法 master method 是用來專門計算這種形式的時間複雜度的,方法具體如下 下邊舉例進行說明 例1 t n 25 t n 5 n 2 因為 a 25,b 5,d 2,f n n 2 所以此例符合master m...
時間複雜度的計算方法
1.1 頻度統計法。頻度統計法指以程式中語句執行次數的多少作為演算法時間度量分析的一種方法。通常情況下,演算法的時間效率主要取決於程式中包含的語句條數和採用的控制結構這兩者的綜合效果。因此,最原始且最牢靠的方法是求出所有主要語句的頻度f n 然後求所有頻度之和。例如 如下形式的語句段 for i 1...