演算法基礎知識

2021-08-13 19:36:10 字數 996 閱讀 2909

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),不管傳入任何引數,**只執行一遍

void print(int n) 

}

此時**執行次數= n+1 +n = 2n + 1,那麼當n無限大的時候 時間複雜度t(n) = o(n)

void print(int n) }}

此時**執行的次數為 n + nxn + nxn = 2n2 + n ,那麼當n無限大的時候時間複雜度t(n) = o(n2)

放圖 知乎參考

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個數量級 執行環境資源有限,需要根據輸入規模 數量級 準備資源,...