【數據結構】3_程序設計的靈魂

學員間的對話
  • 木暮:我發現三井真是牛,只用一行就實現了strlen
  • 宮城:那麼強!他是怎麼作的呢?
  • 木暮:不知道,我看了一下,沒看懂。。。
  • 宮城:牛人就是牛人啊!
問題:程序是否越短越好?是否別人看不懂就證實本身很厲害?

數據結構與算法

  • 數據結構靜態的描述了數據元素之間的關係
  • 高效的程序設計須要在數據結構的基礎上設計和選擇算法

image.png

  • 算法是特定問題求解步驟的描述
  • 在計算機中表現爲指令的有限序列

算法是獨立存在的一種解決問題的方法和思想。
對於算法而言,語言並不重要,重要的是思想。算法

算法的特性

  • 輸入數據結構

    • 算法具備0個或多個輸入
  • 輸出spa

    • 算法至少有一個或多個輸出
  • 有窮性:設計

    • 算法在有限的步驟以後會自動結束而不會無限循環
    • 在可接受的時間範圍內完成計算(當代軟件領域)
  • 肯定性:blog

    • 算法中的每一步都含有肯定的含義,不會出現二義性
    • 固定的輸入,固定的輸出
  • 可行性資源

    • 算法的每一步都是可行的
  • 正確性it

    • 算法對於合法數據可以獲得知足要求的結果
    • 算法可以處理非法輸出,並獲得合理的結果
    • 算法對於邊界數據和壓力數據可以獲得知足要求的結果
  • 可讀性程序設計

    • 算法要方便閱讀,理解和交流
  • 健壯性class

    • 算法不該該產生莫名其妙的結果
  • 性價比基礎

    • 利用最少的資源獲得知足要求的結果

注意:

  1. 正確性是算法最須要知足的基本準則,但做爲計算機程序,不可能無限制的知足這條規則。應該保證的是最終用戶所關心的數據範圍以內算法可以運算出正確的結果。
  2. 算法可讀行是最容易被忽視的,然而程序是寫給人看的,而不是計算機。

小結

  • 算法爲了解決實際問題而存在
  • 數據結構是處理算法問題的載體
  • 數據結構與算法相符相成,共同解決問題

程序 = 數據結構 + 算法(程序的靈魂)

以上內容參考狄泰軟件學院系列課程,請你們保護原創!

相關文章
相關標籤/搜索