演算法複雜度分析之主方法

2022-09-13 12:57:07 字數 494 閱讀 5761

最近看stanford的演算法導**開課,講到分治法的時候提到了主方法,可以很快速的分析演算法的時間複雜度。

對於乙個遞迴實現的分治演算法,其時間複雜度表示為:

t(n) = at(n/b)+h(n)

其中,a>=1; b>1; h(n)是不參與遞迴部分的時間複雜度。

比較n^log b (a)與θ(h(n)) 的大小(θ的含義和「等於」類似,而大o的含義和「小於等於」類似,感覺好像這裡都可以用):

若n^log b (a)= θ(h(n)) :該方法的複雜度為 θ(h(n)*log(n))

若n^log b (a)< θ(h(n)) :該方法的複雜度為 θ(h(n))

若n^log b (a)> θ(h(n)) :該方法的複雜度為 θ(n^log b (a))

例如:t(n) = t(n/2)+1:θ(log(n))(二分查詢)

t(n) = 2t(n/2)+n :θ(n*log(n))(歸併排序)

以上都屬於「等於」的情況。

演算法 時間複雜度分析方法

最近,在讀 資料結構與演算法分析,c語言描述 第二章,演算法分析,講述了,執行時間計算方法。是我見過,講的最好的了。乙個簡單例子。計算立方和。intsum int n 關鍵分析 四則運算,或者任意乙個操作,每次占用乙個時間單元。第1行和第4行,各佔乙個時間單元。第3行,每次執行,佔4個時間單元 2次...

演算法複雜度分析

分析非遞迴演算法效率的通用方案 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 法則二 如果...