演算法複雜度分析

2021-08-10 15:55:15 字數 1321 閱讀 7917

對於遞推類和迴圈類演算法,我們一般統計其主要的基本操作個數與問題的規模大小。從而就可以推出演算法複雜度。

對於任意α!

=1的通式t(

n)=t

(αn)

+t((

1−α)

n)+c

n ,其時間複雜度都是o(

nlog

n)對於正規化t(

n)=a

t(n/

b)+n

d ,對於

a>1,

b>1,

d>

0 ,所以可以得出最後的複雜度為:

對上面分析,當

d>lo

gba 時,那麼ab

d 就小於1,所以1+

abd+

(abd

)2+.

....

..+(

abd)

logb

n 的和極限一定小於某個常數,即t(

n)nd

,所以t(

n)=n

d . 當d

=log

ba時,那麼1+

abd+

(abd

)2+.

....

..+(

abd)

logb

n 等於lo

gbn ,所以這個時候t(

n)=n

logb

alog

n . 當d

gba 時,那麼ab

d 就大於1,所以1+

abd+

(abd

)2+.

....

..+(

abd)

logb

n 的和是乙個隨n的線性增長,即t(

n)ogba

,所以t(

n)=n

logb

a .

雙層遞推

如: a∗t

(n)+

b∗t(

n−1)

+c∗t

(n−2

)=0

對於此類問題的分解:

採用求取特徵值的求法: ax

2+bx

+c=0

這樣轉換的原因在於,呈現上述公式的解一般是指數型解可以化簡,這樣x就相當於指數基數了。這樣就可以最終求出t(

n)的表示式,時間複雜度一目了然。

特殊形式m(

n)=k

1m(n

−1)+

k2 當

k1≠1

時,這樣的表示式一般表示的也是指數級別的複雜度。

演算法複雜度分析

分析非遞迴演算法效率的通用方案 1.決定用哪個 哪些 引數作為輸入規模的度量 2.找出演算法的基本操作 作為一規律,它總是位於演算法的最內層迴圈中 3.檢查基本操作的執行次數是否只依賴輸入規模。如果它還依賴一些其他的特性,則最差效率 平均效率以及最優效率 如果必要 需要分別研究。4.建立乙個演算法基...

演算法複雜度分析

演算法分析的四個漸進表示法 一般,o裡的,取最小的 一般,裡的,取最大的 一般分析時間複雜度,且常考慮最壞複雜度,常用o分析 三法則 法則一 如果t1 n o f n t2 n0 o g n t1 n t2 n max o f n o g n t1 n t2 n o f n o g n 法則二 如果...

演算法複雜度分析

類別name 名字交換類排序 quicksort 快速排序 交換類排序 bubble sort 氣泡排序 選擇類排序 selection sort 選擇排序 選擇類排序 heapsort 堆排序插入類排序 insertion sort 插入排序 插入類排序 shell sort 希爾排序 bucke...