演算法時間複雜度分析

2021-07-31 20:17:22 字數 843 閱讀 3241

演算法中基本操作重複執行的次數是問題規模n的某

個函式,其時間量度記作 t(n)=o(f(n)),稱作演算法的

漸近時間複雜度(asymptotic time complexity),簡

稱時間複雜度。一般地,常用最深層迴圈內的語句中的原操作的執

行頻度(重複執行的次數)來表示。

「o」的定義: 若f(n)是正整數n的乙個函式,則 o(f(n))

表示: 存在 m≥0 ,使得當n ≥ n0時,| f(n) | ≤ m | f(n0) | 。

表示時間複雜度的階有:

o(1) :常量時間階 o (n):線性時間階

o(㏒n) :對數時間階 o(n㏒n) :線性對數時間階

舉個簡單的例子:

for(i=1,i

<=n; ++i)

for(j=1; j

<=n; ++j)

由於是乙個三重迴圈,每個迴圈從1到n,則總次數為:

n×n×n=n3 時間複雜度為t(n)=o(n3)

import math

defprime

(n):

i=2while(((n%i)!=0)&(i*1.0

1if (i*1.0>math.sqrt(n)):

print('%d 是乙個素數\n'%n)

else:

print('%d 不是乙個素數\n'%n)

巢狀的最深層語句是i++;其頻度由條件( (n%

i)!=0 && i*1.0< sqrt(n) ) 決定,顯然i*1.0< sqrt(n) ,

時間複雜度o(n1/2)。

演算法時間複雜度分析

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

演算法分析時間複雜度

對乙個演算法的分析,很多時候我們更關心演算法執行的時間複雜度。演算法的時間複雜度中,我們關心演算法執行的時間上界。即大o階分析方法。時間複雜度的分類 1 沒有迴圈遞迴的基本都是常數階。2 有一層迴圈的就是線性階。for int i 0 i dosth 3 對數階 一般類似如下 while i i i...

演算法時間複雜度分析

簡單而言,演算法時間複雜度就是數學裡面的函式,也就是演算法的時間度量,一般記作 t n o f n 演算法分析的分類 1.最壞情況 任意輸入規模的最大執行時間。上界 2.平均情況 任意輸入規模的期望執行時間。3.最好情況 任意輸入規模的最小執行時間,通常最好情況不會出現。下界 情景一 常數階 int...