- C語言程序設計
- 徐鳳生 黃超 謝玉華編著
- 560字
- 2019-10-12 15:48:42
1.2.3 算法設計的原則
要設計一個“好”的算法,通常應考慮達到以下目標:
(1)正確性。首先,算法應當滿足以特定的“規格說明”方式給出的需求。其次,對算法是否“正確”的理解可以有以下4個層次:①程序中不含語法錯誤;②程序對于幾組輸入數據能夠得出滿足要求的結果;③程序對于精心選擇的、典型、苛刻且帶有刁難性的幾組輸入數據能夠得出滿足要求的結果;④程序對于一切合法的輸入數據都能得出滿足要求的結果。通常以第③層意義的正確性作為衡量一個算法是否合格的標準。達到第④層意義的正確性極為困難,因為對所有的輸入數據進行驗證不太現實。
(2)可讀性。算法主要是為了人的閱讀與交流,其次才是為計算機執行,因此算法應該易于人的理解;另一方面,晦澀難讀的程序易于隱藏較多錯誤而難以調試。
(3)健壯性。當輸入的數據非法時,算法應當恰當地做出反應或進行相應處理,而不是產生莫名其妙的輸出結果。并且,處理出錯的方法不應是中斷程序的執行,而應是返回一個表示錯誤或錯誤性質的值,以便在更高的抽象層次上進行處理。
(4)高效率與低存儲量需求。通常,效率指的是算法執行時間。對于同一個問題的多個算法,執行時間短的算法效率高。存儲量指的是算法執行過程中所需的最大存儲空間。兩者都與問題的規模有關。如求100個數的平均數和求10000個數的平均數所花的執行時間和運行空間有一定的差別。
推薦閱讀
- 精通Nginx(第2版)
- 認識編程:以Python語言講透編程的本質
- AIRAndroid應用開發實戰
- MySQL 8 DBA基礎教程
- RTC程序設計:實時音視頻權威指南
- 基于免疫進化的算法及應用研究
- 人臉識別原理及算法:動態人臉識別系統研究
- FLL+WRO樂高機器人競賽教程:機械、巡線與PID
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- 從零開始學Selenium自動化測試:基于Python:視頻教學版
- Scratch從入門到精通
- IPython Interactive Computing and Visualization Cookbook
- Python Projects for Kids
- 你真的會寫代碼嗎
- Neo4j 3.x入門經典