程序的靈魂-算法

數據結構只是靜態的描述了數據元素之間的關係。算法

高效的程序須要在數據結構的基礎上設計和選擇算法。高效的程序包括恰當的數據結構與合適的算法。數據結構

算法是特定問題求解步驟的描述,在計算機中表現爲指令的有限序列,算法是獨立存在的一種解決問題的方法和思想。對於算法而言,語言並不重要,重要的是思想。前面這句,要一分爲二的看,在算法設計的時候,這句話成立。設計

算法的特性:資源

輸入:算法具備0個或多個輸入。基礎

輸出:算法至少有1個或多個輸出。數據結構與算法

有窮性:算法在有限的步驟以後會自動結束而不會無限循環。循環

肯定性:算法中的每一步都有肯定的含義,不會出現二義性。程序

可行性:算法的每一步都是可行的。方法

算法設計準則之一正確性:數據

1.、算法對於合法數據可以獲得知足要求的結果。

2.、算法可以處理非法輸入,並獲得合理的結果。

三、算法對於邊界數據和壓力數據都能獲得知足要求的結果(不強制要求)。

注意:正確性是算法最須要知足的基本的準則,可是做爲計算機程序,不可能無限制的知足這條準則。

算法設計準則之二可讀性:算法要方便閱讀,理解和交流。

算法設計準則之三健壯性:算法不該該產生莫名其妙的結果。

算法設計準則之四高性價比:利用最少的時間和資源獲得知足要求的結果。

注意:算法可讀性是最容易被忽視的,然而,程序是寫給人看的,而不是計算機。

小結:

一、算法是爲了解決實際問題而設計的

二、數據結構是算法須要處理的問題載體

三、數據結構與算法相輔相成

程序 = 數據結構 + 算法

相關文章
相關標籤/搜索