演算法設計與分析

2021-10-03 14:52:55 字數 1959 閱讀 3148

貪心演算法:單位權值價值大的優先。

演算法設計:①問題建模,②選擇什麼演算法?如何描述這個方法?,③這個方法是否對所有例項都得到最優解?如何證明?④如果不是,能否找到反例?

例2:投資問題

蠻力演算法(窮舉法),演算法效率c(m+n-1,m)= (m+n-1)!/m!(n-1)!

問題求解的關鍵

建模:對輸入引數和解給出形式化或半形式化的描述

設計演算法:採用什麼演算法設計技術 ,正確性—是否對所有例項都得到正確的解,分析演算法—效率

例3:排序演算法的效率

例4:貨郎問題

演算法的研究目標:

問題→建模並尋找演算法 演算法設計技術

演算法→演算法的評價 演算法分析方法

演算法類→問題複雜度估計 問題複雜度分析

問題類→能夠求解的邊界 計算複雜性理論

1.5 演算法及其時間複雜度

基本運算與輸入規模

演算法時間複雜度:針對指定基本運算,計算演算法所作運算次數。

最壞情況下的時間複雜度w(n)

平均情況下的時間複雜度a(n)

1.6演算法的偽碼表示

用偽碼表示演算法

偽碼不是程式**,只是給出演算法的主要步驟

**中有哪些關鍵字?

偽碼中允許過程呼叫

np-hard

1.7 函式漸進的界

大o符號:1.f(n) = o(g(n)),f(n)的階不高於g(n)的階。

2.可能存在多個正數c,只要指出乙個即可。

3.對前面有限個值可以不滿足不等式。

4.常函式可以寫作o(1)。

大ω符號:1.f(n) = ω(g(n)),f(n)的階不低於g(n)的階。

2.可能存在多個正數c,指出乙個即可。

3.對前面有限個n值可以不滿足上述不等式。

小o符號:1.f(n) =o(g(n)),f(n)的階低於g(n)的階

2.對不同正數c,n0不一樣,c越小n0越大。

3.對前面有限個n值可以不滿足上述不等式。

小w符號:1.f(n) = w(g(n)),f(n)的階高於於g(n)的階。

2.對不同正數c,n0不一樣,c越大n0越大。

3.對前面有限個n值可以不滿足上述不等式。

θ符號: f(n) = o(g(n))且f(n) = ω(g(n)),則滿足f(n) = θ(g(n))

1.f(n)的階與g(n)的階相等

2.對前面有限個n值可以不滿足上述不等式。

對數函式 ,指數函式,階乘函式,取整函式

2.2 序列求和的方法

二分檢索演算法

有2n+1個可能的輸入

二分檢索平均時間複雜度 :假設n=2^k-1 有2n+1種可能的輸入,k-1/2=[logn] +1/2.

2.3遞推方程與演算法分析

fibonacci數

hanoi塔問題 的遞迴演算法

插入排序 的迭代演算法

2.4 迭代法求解遞推方程

2.5 差消法化簡遞推方程

對於高階遞推方程先要用差消法化簡為一階方程

迭代求解

2.6 遞迴樹

遞迴樹是迭代的圖形表示

遞迴樹的生成規則

如何利用遞迴樹求解遞推方程?

2.7 主定理

3.分治策略

fibonacci 數列

3.7改進分治演算法

減少子問題個數:

矩陣乘法的研究及應用

矩陣乘法問題的難度:c-w演算法 :o(n^2.376)

目前為止最好的上界;目前為止最好的下界ω(n^2)

應用:科學計算,影象處理,資料探勘等,

回歸,聚類,主成分分析,決策樹

增加預處理:

卷積及應用

訊號的平滑處理

高斯濾波的權值函式

演算法設計與分析

輸入輸出 確定性有窮性 np類問題是非確定性計算模型下的易驗證問題類。所有可以在多項式時間內求解的判定問題構成p類問題 1 二分搜尋技術 二分搜尋演算法的基本思路是對給定已排好序的n個元素a 0 n 1 在這n個元素中找出乙個特定元素x。運用分治的思想,將n個元素以n 2為中心對半分。if x a ...

演算法分析與設計

分析,此題可以用動態規劃來做。子問題為 max i max i 1 0 max i 1 nums i nums i max i 表示以nums i 結尾的子串的最大和,最後返回最大的那個即為所求,複雜度為o n class solution return max 另一種實現方法,更加簡潔,即從前往後...

演算法設計與分析

ylbtech miscellaneos 演算法設計與分析 a,返回頂部1,演算法設計與分析 是2009年國防工業出版社出版的圖書,作者是張德富。書主要取材於演算法設計與分析領域的經典內容,並介紹了演算法設計的發展趨勢。內容主要包括非常經典的演算法設計技術,例如遞迴與分治 動態規劃 貪心 回溯 分支...