1 1複雜度度量

2021-10-14 14:49:22 字數 1099 閱讀 7100

1.1複雜度度量

1.漸進複雜度

1.大o

oo記號-漸進上界

當n足夠大之後

若存在正常數c和函式f(n),使得對任意任意 n >> 2(遠遠大於2),都有

t(n)<=c*f(n);

則可以認為n在足夠大之後,f(n)給出了t(n)增長速度的乙個漸進上界。此時,記之為t(n)=o(f(n))

由這一定義,可以匯出大o

oo記號的一下性質:

對於任意常數c>0 ,有o(f(n))=o(c*f(n))

對於任意常數a>b>0, 有o(n

an^a

na+n

bn^b

nb)=o(n

an^a

na)

例項,起泡排序的複雜度分析

bubblesort(起泡排序),t(n)=o(2(n−

1)

2(n-1)^2

(n−1)2

)=o(2n

2n^2

n2-4n+2)=o(2n

2n^2

n2)=o(n

2n^2

n2)2.大ω

\omega

ω記號-漸進下界

若存在正常數c和函式g(n),使得對任意任意 n >> 2(遠遠大於2),都有

t(n)>=c*g(n);

就可以認為,在n足夠大之後,g(n)給出了t(n) 的乙個漸進下界。此時,我們將其記為

t(n)=ω

\omega

ω(g(n));

3.大θ

\theta

θ記號-對演算法複雜度的準確估計

若存在正常數c1> 2(遠遠大於2),都有

c1*h(n)<=t(n)<=c2*h(n)

就可以認為,在n足夠大之後,h(n)給出了t(n) 的乙個確界。此時,我們將其記為

t(n)=θ

\theta

θ(h(n));

2.時間複雜度

一般使用漸進複雜度度量

3.空間複雜度

一般使用漸進複雜度度量

2 演算法複雜度度量

1.時間複雜度 特定演算法處理規模為n的問題所需要的時間可記作t n 嚴格來說這個定義並不明確。為此需要做進一步簡化,即從保守估計的角度出發,在規模為n的所有輸入中選擇執行時間最長者作為t n 並以t n 度量該演算法的時間複雜度。2.漸進複雜度 著重長遠 更為注重時間複雜度的總體變化趨勢和增長速度...

如何度量複雜度

我們以度量複雜度的3種方法作為本文的結束 用邏輯深度度量複雜性為了更加接近我們對複雜性的直覺,數學家班尼特在20世紀80年代初提出了邏輯深度 logical depth 的概念。乙個事物的邏輯深度是對構造這個事物的困難程度的度量。高度有序的a c g t序列顯然很容易構造。同樣,如果我要你給我乙個a...

軌跡相似度度量

有四種方法可以度量軌跡相似度 1 lcss,longest comon subsequence 2 frechet distance 3 dtw,dynamic time warping 4 edit distance 軌跡ta,包含若干個 t,a 點。其中,a為位置點,t為時間戳。有乙個簡單的理解...