程序的靈魂---算法
數據結構與算法
概念:
a.數據結構只是靜態的描述了數據元素之間的關系。
b.高效的程序需要在數據結構的基礎上設計和選擇算法。
***高效的程序***=恰當的數據結構和合適的算法
算法的定義
a.算法是特定問題求解步驟的描述
b.在計算機中表現為指令的有限序列
算法是獨立存在的一種解決問題的方法和思想。
對於"算法"而言,
****語言並不重要,重要的是思想****。
算法的特性
a.輸入
算法具有0個或對個輸入.
b.輸出
算法至少有1個或多個輸出.
c.有窮性(自動結束)
算法在有限的步驟之後會自動結束而不會無限循環.
d.確定性
算法中的每一步都有確定的含義,不會出現二義性.
e.可行性
算法的每一步都是可行的.
算法設計的準則
一:正確性
a.算法對於合法數據能夠得到滿足要求的結果.(必選)
b.算法能夠處理非法輸入,並得到合理的結果.(必選)
c.算法對於邊界數據和壓力數據都能得到滿足要求的結果.(可選)
註意:正確性是算法最需要滿足的基本準則,但是作為計算機程序,不可能無限制的滿足這條準則.
二:可讀性
a.算法要方便閱讀,理解和交流
三:健壯性
a.算法不應該產生莫名其妙的結果
四:高性價比
a.利用最少的時間和資源得到滿足要求的結果
註意:
算法可讀性是最容易被忽視的,然而,程序是寫給人看的,而不是計算機。
小結
a.算法是為了解決實際問題而設計的。
b.數據結構是算法需要處理的問題載體。
c.數據結構與算法相輔相成。
程序 = 數據結構 + 算法
本文出自 “12897581” 博客,請務必保留此出處http://12907581.blog.51cto.com/12897581/1950667
程序的靈魂---算法