天天看點

程式的靈魂---算法

資料結構與算法

概念:

a.資料結構隻是靜态的描述了資料元素之間的關系。

b.高效的程式需要在資料結構的基礎上設計和選擇算法。

***高效的程式***=恰當的資料結構和合适的算法

算法的定義

a.算法是特定問題求解步驟的描述

b.在計算機中表現為指令的有限序列

算法是獨立存在的一種解決問題的方法和思想。

對于"算法"而言,

****語言并不重要,重要的是思想****。

算法的特性

a.輸入

算法具有0個或對個輸入.

b.輸出

算法至少有1個或多個輸出.

c.有窮性(自動結束)

算法在有限的步驟之後會自動結束而不會無限循環.

d.确定性

算法中的每一步都有确定的含義,不會出現二義性.

e.可行性

算法的每一步都是可行的.

算法設計的準則

一:正确性

a.算法對于合法資料能夠得到滿足要求的結果.(必選)

b.算法能夠處理非法輸入,并得到合理的結果.(必選)

c.算法對于邊界資料和壓力資料都能得到滿足要求的結果.(可選)

  注意:正确性是算法最需要滿足的基本準則,但是作為計算機程式,不可能無限制的滿足這條準則.

    二:可讀性

     a.算法要友善閱讀,了解和交流

    三:健壯性

     a.算法不應該産生莫名其妙的結果

    四:高成本效益

     a.利用最少的時間和資源得到滿足要求的結果

     注意:

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

     小結

     a.算法是為了解決實際問題而設計的。

     b.資料結構是算法需要處理的問題載體。

     c.資料結構與算法相輔相成。

     程式 = 資料結構 + 算法

本文轉自 沉迷學習中 51CTO部落格,原文連結:http://blog.51cto.com/12907581/1950667,如需轉載請自行聯系原作者

繼續閱讀