一、概念
時間複雜度:總運算次數表示式中受到n的影響最大的那一項
二、概念解釋
由於機器執行環境等的影響,**的運算時間並不能準確的測算出來。但是,運算之間和演算法中語句的執行次數是成正比的,所以可以用語句之行次數來表徵時間複雜度的大小
三、計算方法
在計算演算法的時間複雜度的時候,先找出基本操作,再根據演算法語句計算出該操作的執行次數,最後確定執行次數的數量級
四、常見的演算法複雜度:
1)常數階:o(1)
2)對數階:o(logn)
3)線性階:o(n)
4)線性對數階:o(n*logn)
5)平方階:o(n^2)
五、計算的小tips
1)找執行次數最多的語句,基本上就是記憶體迴圈的迴圈體(巢狀呼叫其實就是變身版的for迴圈語句)
2)只需要找執行次數的數量級,不需要特別準確的執行次數的數字
六、舉個例子
o(log2(n))
public static void main(string args)
}
很明顯可以看出,這段**的基本語句就是while迴圈的迴圈體
假設基本語句的執行次數是 f(n),那麼就有 2^f(n) <= n,轉換一下就有 f(n) <= log2(n), 取f(n)的最大值,於是就有f(n) = log2(n)
也就是說時間複雜度是 o(log2(n))
演算法時間複雜度計算
本部落格主要講解下演算法時間複雜度的基本計算過程。演算法時間複雜度是指演算法中基本操作的執行次數。記為t n o f n t n 為增長比最快項的係數。計算步驟 舉例說明 例1 void funfirst int n step1 基本操作是 j i 2 step2 確定規模,根據迴圈條件,確定規模為...
演算法時間複雜度的計算
定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 求解演算法的時間複雜度的具體步驟是 1 找出演算法中的基本語句 演算法中執行次數最多的那條語句就是基本語句,通常是最內層迴圈的迴圈體。2 計算基本語句的執行次數的數量級 ...
演算法的時間複雜度計算
一 概念時間複雜度是總運算次數表示式中受n的變化影響最大的那一項 不含係數 比如 一般總運算次數表示式類似於這樣 a 2 n b n 3 c n 2 d n lg n e n f a 0時,時間複雜度就是o 2 n a 0,b 0 o n 3 a,b 0,c 0 o n 2 依此類推eg 1 for...