o(1):稱為不變複雜性
1項:1秒
10項:1秒
100個專案:1秒
專案的數量仍然增加10倍,但o(1)的比例因子總是1。
o(log n):稱為對數複雜度
1項:1秒
10項:2秒
100項:3秒
1000項:4秒
10000項:5秒
計算次數只會增加輸入值的對數。因此,在這種情況下,假定每個計算需要1秒鐘,輸入的日誌n就是所需的時間log n。
o(n):稱為線性複雜度
1項:1秒
10項:10秒
100個專案:100秒
這次專案數量增加了10倍,時間也增加了10倍。n = 10,所以o(n)的比例因子是10。
o(n 2):稱為二次型複雜度
1項:1秒
10個專案:100秒
100個專案:10000秒
注意物品的數量增加了10倍,但時間增加了10
2倍。基本上,n = 10,所以o(n 2)給出我們的比例因子n 2,它是10
2。
void print(string str)
這個演算法的時間複雜度t(n) = o(1),不管傳入任何引數,**只執行一遍
此時**執行次數= n+1 +n = 2n + 1,那麼當n無限大的時候 時間複雜度t(n) = o(n)void print(int n)
}
此時**執行的次數為 n + nxn + nxn = 2n2 + n ,那麼當n無限大的時候時間複雜度t(n) = o(n2)void print(int n) }}
放圖 知乎參考
stackoverflow參考
演算法 基礎知識
插入排序法示例 將想要插入的值搜尋找到合適的位置,之前的數值一一向後移動乙個位置,騰出乙個空位置給想要插入的數值。偽 instert sort a for j 2 to a.length key a j i j 1 while i 0 and a i key a i 1 a i i i 1 a i ...
演算法基礎知識
一 插入排序 撲克牌原理 n 2 原址 a 1,n 1 是排好序的,把第n個往前 二 分治法 歸併 nlgn 非原址 先分解 sort a,p,r if pa or b 三 分治法 最大子陣列問題 描述 尋找a的和最大的非空連續子陣列 解決 按中點分成兩段,遞迴找左右段各自的最大段,再找跨越中點的最...
演算法筆記 演算法基礎知識
演算法是一種解決某類問題 具體的 明確無歧義的計算過程。十進位制的指數。例如 1500 1.5 10 3 數量級是3,也可以是 千 kilo 150萬 1.5 10 6 數量級是6,也可以是 百萬 million 150萬比1500大3個數量級 執行環境資源有限,需要根據輸入規模 數量級 準備資源,...