演算法的時間複雜度與大O記法

2021-08-19 20:21:21 字數 775 閱讀 9041

演算法的時間複雜度:演算法的時間複雜度是乙個關於問題規模n的函式,而且這個函式描述了cpu執行演算法所需要的時間。

大o記法:描述時間複雜度優劣的一種記法。

2、推導大o階的方法

假設演算法的時間複雜度為t(n)

1. 只保留最高端項

2. 將最高端項的常數改為1

第一步:計算語句執行次數t(n)

void matrixm(int n)                                             

floata[n][n],b[n][n],c[n][n];

inti,j,k;

for(i=0;in+1次

for(j=0;jn*(n+1)次

c[i][j]=0;------------------------------>n^2次

for(k=0;kn^2* (n+1)次

c[i][j]=c[i][j]+a[i][k]*b[j][k];---->n^3次

將以上每個語句頻度相加,得到

t(n)=2*n^3+3*n^2+2*n+1

第二步:保留最高次項

t(n)----->o(2*n^3)

第三步:將最高端項的常數改為1

t(n)----->o(n^3)

即t(n)=o(n^3)

常用演算法的時間複雜度所耗費的時間從小到大依次是:

o(1) < o(logn) < o(n) < o(nlogn)< o(n^2) < o(n^3) < o(2^n) < o(n!) < o(n^n)

時間複雜度分析 大O記法

就是看乙個程式執行消耗的時間,這個最簡單的分析方法但是有很大的缺點 用這種方式去測試需要等待程式執行完畢,浪費了很多時間在等待程式執行上 對於不同的硬體條件,程式執行的速度都是不一樣的,這樣的結果就沒有說服力 程式設計師主要關注的是 使用什麼演算法實現 乙個問題的規模 設t n 為問題規模n的函式,...

時間複雜度 大O演算法

演算法的執行效率,就是演算法 的執行時間。我們需要能夠用肉眼就看出一段 的執行時間。int cal int n return sum 2,3行都執行了1個unit time的執行時間,4,5行都執行了n遍,所以是2n unit time的執行時間,所以一共是 2n 2 unit time。所有的 的...

大O符號與時間複雜度

大o符號 big o notation 是用於描述函式漸進行為的數學符號。也可以這麼說 用乙個大o,在其括號 中,用另乙個函式來描述原來的函式的數量級的漸進上界 電腦科學中,用於分析演算法複雜性非常有用 這個符號有兩種形式上很接近但迥然不同的使用方法 無窮大漸近與無窮小漸近。然而這個區別只是在運用中...