官术网_书友最值得收藏!

1.2.3 算法設計的原則

要設計一個“好”的算法,通常應考慮達到以下目標:

(1)正確性。首先,算法應當滿足以特定的“規格說明”方式給出的需求。其次,對算法是否“正確”的理解可以有以下4個層次:①程序中不含語法錯誤;②程序對于幾組輸入數據能夠得出滿足要求的結果;③程序對于精心選擇的、典型、苛刻且帶有刁難性的幾組輸入數據能夠得出滿足要求的結果;④程序對于一切合法的輸入數據都能得出滿足要求的結果。通常以第③層意義的正確性作為衡量一個算法是否合格的標準。達到第④層意義的正確性極為困難,因為對所有的輸入數據進行驗證不太現實。

(2)可讀性。算法主要是為了人的閱讀與交流,其次才是為計算機執行,因此算法應該易于人的理解;另一方面,晦澀難讀的程序易于隱藏較多錯誤而難以調試。

(3)健壯性。當輸入的數據非法時,算法應當恰當地做出反應或進行相應處理,而不是產生莫名其妙的輸出結果。并且,處理出錯的方法不應是中斷程序的執行,而應是返回一個表示錯誤或錯誤性質的值,以便在更高的抽象層次上進行處理。

(4)高效率與低存儲量需求。通常,效率指的是算法執行時間。對于同一個問題的多個算法,執行時間短的算法效率高。存儲量指的是算法執行過程中所需的最大存儲空間。兩者都與問題的規模有關。如求100個數的平均數和求10000個數的平均數所花的執行時間和運行空間有一定的差別。

主站蜘蛛池模板: 濮阳县| 肇东市| 营口市| 黄山市| 榆林市| 浮梁县| 咸宁市| 昭通市| 凉山| 宝山区| 察隅县| 图们市| 博乐市| 海林市| 含山县| 兴国县| 南宁市| 犍为县| 钟祥市| 鹤壁市| 竹溪县| 安龙县| 麟游县| 临邑县| 安多县| 独山县| 黄山市| 无极县| 新营市| 大方县| 富裕县| 昌宁县| 睢宁县| 弥渡县| 永平县| 大安市| 盐津县| 芜湖市| 陆良县| 洛阳市| 安图县|