資料結構與演算法學習筆記 1 (2018.10.05)
阿新 • • 發佈:2018-12-13
演算法
- 計算=資訊處理
藉助某種工具,遵照一定規則,以明確而機械的形式進行
- 計算模型=計算機=資訊處理工具
- 所謂演算法,即特定計算模型下,旨在解決特定問題的指令序列
輸入 待處理的資訊(問題)
輸出 經處理的資訊(答案)
正確性 的確可以解決特定的問題
確定性 任一演算法都可以描述為一個由基本操作組成的序列
可行性 每一基本操作都可實現,且在常數時間內完成
有窮性 對於任何輸入,經有窮次基本操作,都可以得到輸出
好演算法
- 正確:符合語法,能夠編譯、連結
能夠正確處理簡單的輸入
能夠正確處理大規模的輸入
能夠正確處理一般性的輸入
能夠正確處理退化的輸入
能夠正確處理任意合法的輸入
- 健壯:能夠辨別不合法的輸入並做適當的處理,而不致非正常退出
- 可讀:結構化 + 準確命名 + 註釋 + ...
- 效率:速度儘可能快;儲存空間儘可能少
Algorithms + Data Structures = Programs
// N.wirth,1976 (Algorithms + Data Structures) × Efficiency = Computation