1. 程式人生 > >數據-第3課-程序的靈魂-算法

數據-第3課-程序的靈魂-算法

描述 無限循環 性價比 特定 方便 數據結構 算法設計 定性 求解

第3課-程序的靈魂-算法

  1. 數據結構與算法

(1) 數據結構只是靜態的描述了數據元素之間的關系。

(2) 高效的程序需要在數據結構的基礎上設計和選擇算法。

高效的程序:恰當的數據結構 + 合適的算法。

  1. 算法的定義

(1) 算法是特定問題求解步驟的描述。

(2) 在計算機中表現為指令的有限序列。

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

對於算法而言,語言並不重要,重要的是思想。

  1. 算法的特性

1)輸入

 算法具有0個或多個。

2)輸出

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

3)有窮性

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

4)確定性

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

5)可行性

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

  1. 算法設計的準則

1)正確性

l 算法對於合法數據能夠得到滿足要求的結果。

l 算法能夠處理非法輸入,並得到合理的結果。

l 算法對於邊界數據和壓力數據都能得到滿足要求的結果(不強制要求滿足)。

2)可讀性

算法要方便閱讀,理解和交流。

3)健壯性

算法不應該產生莫名其妙的結果。

4)高性價比

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

註意:

1)正確性是算法最需要滿足的基本的準則,但是作為計算機程序,不可能無限制的滿足這條準則。

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

小結

(1) 算法是為了解決實際問題而設計的。

(2) 數據結構是算法需要處理的問題載體。

(3) 數據結構與算法相輔相成。

程序 = 數據結構 + 算法

數據-第3課-程序的靈魂-算法