這是一篇比較完整的講述「算法」的文章了

1、算法是什麼:通常來說,算法指的是解決問題的一種方法或過程,一個給定的算法可以用來描述解決問題的一個求解方案。

2、算法設計方法:

(1)分治法:將問題實例劃分為許多小的實例,對小的實例進行遞歸求解,再合併這些解。

(2)減治法:通過建立問題給定實例的解和同樣問題比較小實例的解的關係,再採用遞歸或非遞歸求解 。

(3)變治法:三個方法將問題變化成更易求解的形式,把問題轉變成另一個可用已知算法求解的問題;把問題的實例變化成相同問題的另一個實例;將一個問題的實例表現變為同樣實例的另一種表現。

(4)蠻力法:通過一般方法直接解決問題。

還有貪婪技術、動態規劃等算法設計方法。

3、算法的描述方法:

流程圖表示、自然語言表示、偽代碼表示、程序設計語言表示

4、算法分析:

算法分析指的是估量算法或程序的效率,即估算算法消耗的資源。

(1)算法好壞衡量的標準:正確性(無語法錯誤、能得到正確結果)、可讀性(易於閱讀、理解、修改)、健壯性、時間效率和存儲需求。

(2)分析的方法:實測法(使用不同算法分析同一個問題,測量算法代碼的消耗)、事後估計法

(3)分析的內容:

時間複雜度:算法的時間效率可以表示為T(n)=O(f(n)),表示消耗多少時間

空間複雜度:表示S(n)=O(f(n)),表示佔用多少內存空間


分享到:


相關文章: