- 教孩子學編程(信息學奧賽C語言版)
- 黨松年 方澤波
- 922字
- 2020-05-22 15:22:49
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語言)描述的算法
- 深入淺出數據科學:Python編程
- SpringMVC+MyBatis快速開發與項目實戰
- 算法精粹:經典計算機科學問題的Python實現
- C語言程序設計
- Windows Server 2016 Automation with PowerShell Cookbook(Second Edition)
- SQL Server 2016數據庫應用與開發
- C語言程序設計
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- C語言從入門到精通
- MongoDB Administrator’s Guide
- 關系數據庫與SQL Server 2012(第3版)
- Offer來了:Java面試核心知識點精講(框架篇)
- Learn Linux Quickly
- HTML5+CSS3+jQuery Mobile+Bootstrap開發APP從入門到精通(視頻教學版)
- 大象:Thinking in UML(第二版)