1. 程式人生 > >程序的靈魂---算法

程序的靈魂---算法

<script>



數據結構與算法

概念:

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

程序的靈魂---算法