演算法時間複雜度計算

2021-08-21 01:47:32 字數 741 閱讀 6253

本部落格主要講解下演算法時間複雜度的基本計算過程。演算法時間複雜度是指演算法中基本操作的執行次數。記為t(n)=o(f(n)),t(n)為增長比最快項的係數。

計算步驟:

舉例說明:

例1:

void funfirst(int n)

}

step1:基本操作是++j; i += 2;

step2:確定規模,根據迴圈條件,確定規模為n;

step3:計算f(n),i的初值為1,每次以2增加,因此假設i迴圈了m次跳出了迴圈,此時i = 1+2m,因此1+2m+k=n(其中k為修正作用的常數),m = f(n) = (n-k-1)/2,取f(n)中增長比最大項為n/2,因此t(n) = n。

例2:

void funsecond(int n)

}

step1:基本操作是++i;s = s + i;

step2:確定規模,根據迴圈條件,確定規模為n;

step3:假設迴圈執行m次結束,則s1 = 1,s2 = 1+2=3,s3 = 1+2+3=6,……sm = m(m+1)/2,則公式為 m(m+1)/2+k = n

因此

演算法時間複雜度的計算

定義 如果乙個問題的規模是n,解這一問題的某一演算法所需要的時間為t n 它是n的某一函式 t n 稱為這一演算法的 時間複雜性 求解演算法的時間複雜度的具體步驟是 1 找出演算法中的基本語句 演算法中執行次數最多的那條語句就是基本語句,通常是最內層迴圈的迴圈體。2 計算基本語句的執行次數的數量級 ...

演算法時間複雜度的計算

一 概念 時間複雜度 總運算次數表示式中受到n的影響最大的那一項 二 概念解釋 由於機器執行環境等的影響,的運算時間並不能準確的測算出來。但是,運算之間和演算法中語句的執行次數是成正比的,所以可以用語句之行次數來表徵時間複雜度的大小 三 計算方法 在計算演算法的時間複雜度的時候,先找出基本操作,再根...

演算法的時間複雜度計算

一 概念時間複雜度是總運算次數表示式中受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...