1. 程式人生 > >資料結構與演算法學習筆記 1 (2018.10.05)

資料結構與演算法學習筆記 1 (2018.10.05)

演算法 

  • 計算=資訊處理

         藉助某種工具,遵照一定規則,以明確而機械的形式進行

  • 計算模型=計算機=資訊處理工具
  • 所謂演算法,即特定計算模型下,旨在解決特定問題的指令序列

        輸入      待處理的資訊(問題)

        輸出       經處理的資訊(答案)

     正確性      的確可以解決特定的問題

     確定性      任一演算法都可以描述為一個由基本操作組成的序列

     可行性       每一基本操作都可實現,且在常數時間內完成

     有窮性       對於任何輸入,經有窮次基本操作,都可以得到輸出

好演算法

  • 正確:符合語法,能夠編譯、連結

                    能夠正確處理簡單的輸入

                    能夠正確處理大規模的輸入

                    能夠正確處理一般性的輸入

​​​​​​​                    能夠正確處理退化的輸入

​​​​​​​                    能夠正確處理任意合法的輸入

  • 健壯:能夠辨別不合法的輸入並做適當的處理,而不致非正常退出
  • 可讀:結構化 + 準確命名 + 註釋 + ...
  • 效率:速度儘可能快;儲存空間儘可能少

​​​​​​​​​​​​​​                    Algorithms + Data Structures = Programs       

// N.wirth,1976

​​​​​​​​​​​​​​                    (Algorithms + Data Structures)  × Efficiency = Computation