- C/C++程序設計教程
- 孫淑霞 肖陽春 魏琴等編著
- 551字
- 2018-12-30 07:11:43
1.4.1 算法的特性與要求
算法是指為解決某個特定問題而采取的確定且有限的步驟。一個算法應該具有以下五個特性:
(1)確定性。算法中的每一個規則、每一個操作步驟都應當是確定的,不能有二義性,對于相同的輸入應該有相同的輸出結果。
(2)有窮性。一個算法必須在執行有限步驟后結束。也就是說,任何算法都必須在有限的時間內完成,而且應該在合理的時間內完成。
(3)有零個或多個輸入。算法中可以沒有數據輸入,也可以同時輸入多個需要處理的數據。
(4)有一個或多個輸出。一個算法執行結束后必須有結果輸出,否則該算法就沒有實際意義。
(5)可執行性。算法的每一步操作都應該是可執行的。例如,當B=0時,A/B就無法執行,不符合可執行性的要求。
要設計一個好的算法通常要考慮以下要求:
(1)正確。算法的執行結果應當滿足預先規定的功能和性能要求。
(2)可讀。一個算法應當思路清晰、層次分明、簡單明了、易讀易懂。算法主要是為了人的閱讀、理解和交流,其次才是機器執行。
(3)健壯。當輸入數據不合法時,應能適當地作出反應或進行處理,而不會產生莫名其妙的輸出結果。
(4)高效與低存儲量。效率指的是算法執行的時間,存儲量需求是指算法執行過程中所需的最大存儲空間。同一個問題如果有多種算法可以解決,執行時間短的算法效率高,而效率與低存儲量需求都與問題的規模有關。
推薦閱讀
- Docker and Kubernetes for Java Developers
- Photoshop智能手機APP UI設計之道
- LabVIEW入門與實戰開發100例
- 動手玩轉Scratch3.0編程:人工智能科創教育指南
- SQL Server 2016數據庫應用與開發習題解答與上機指導
- C語言程序設計
- Windows Server 2016 Automation with PowerShell Cookbook(Second Edition)
- MongoDB權威指南(第3版)
- HTML 5與CSS 3權威指南(第3版·上冊)
- Kubernetes源碼剖析
- OpenStack Networking Essentials
- Java Web開發實例大全(基礎卷) (軟件工程師開發大系)
- C指針原理揭秘:基于底層實現機制
- Sails.js Essentials
- MySQL 8從零開始學(視頻教學版)