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

2.8 算法描述

在C語言中,有5種常用的算法描述方法:自然語言、流程圖、N-S圖、偽代碼和程序設計語言。

上一講中給出的解決問題的算法a、算法b和算法c都是用自然語言來表示算法的(見圖2.6)。自然語言就是我們日常使用的各種語言,可以是漢語、英語、日語等。

用自然語言描述算法的優點是通俗易懂,當算法中的操作步驟都是順序執行時比較直觀、容易理解。缺點是如果算法中包含了判斷結構和循環結構,并且操作步驟較多時,就顯得不那么直觀清晰了。

用流程圖描述算法就可以解決上述缺點。所謂流程圖(Flow Chart),是指用規定的圖形符號來描述算法(見表2.1)。

表2.1 流程圖常用的圖形符號

知識點總結

算法的描述方法:

自然語言 流程圖 N-S圖

偽代碼 程序設計語言

結構化程序設計方法中規定的三種基本程序流程結構(順序結構、選擇結構和循環結構)都可以用流程圖明晰地表達出來(見圖2.8)。

圖2.8 用流程圖表示的順序結構、選擇(條件分支)結構、循環結構三種流程

雖然用流程圖描述的算法條理清晰、通俗易懂,但是它在描述大型復雜算法時,由于流程方向線較多,影響了對算法的閱讀和理解。因此有兩位美國學者提出了一種完全去掉流程方向線的圖形描述方法,稱為N-S圖(兩人名字的首字母組合)。

N-S圖使用矩形框來表達各種處理步驟和三種基本結構(見圖2.9),全部算法都寫在一個矩形框中。

圖2.9 用N-S圖表示的順序結構、選擇(條件分支)結構、循環結構三種流程

圖2.10展示了分別用自然語言、流程圖和N-S圖解決同一問題的算法描述。

圖2.10 分別用自然語言、流程圖和N-S圖描述的算法

偽代碼是在用更簡潔的自然語言算法描述中,用程序設計語言的流程控制結構來表示處理步驟的執行流程和方式,用自然語言和各種符號來表示所進行的各種處理及所涉及的數據(見圖2.11)。它是介于程序代碼和自然語言之間的一種算法描述方法。這樣描述的算法書寫比較緊湊、自由,也比較好理解(尤其在表達選擇結構和循環結構時),同時也更有利于算法的編程實現(轉化為程序)。

圖2.11 常見的三種流程結構的偽代碼

算法最終都要通過程序設計語言描述出來(編程實現),并在計算機上執行。程序設計語言也是算法的最終描述形式(見圖2.12)。無論用何種方法描述算法,都是為了將其更方便的轉化為計算機程序。

圖2.12 用偽代碼和程序設計語言(C語言)描述的算法

主站蜘蛛池模板: 堆龙德庆县| 长泰县| 墨江| 诏安县| 邵东县| 厦门市| 铁岭县| 新竹县| 伊通| 德江县| 泰来县| 酒泉市| 滨州市| 吐鲁番市| 武平县| 扶风县| 健康| 沾化县| 玉屏| 花垣县| 临漳县| 临夏县| 青阳县| 兴海县| 昌邑市| 义马市| 德庆县| 巴马| 罗源县| 顺昌县| 长寿区| 英超| 萍乡市| 德钦县| 崇礼县| 吉隆县| 钦州市| 潼南县| 西峡县| 巴塘县| 枣庄市|