- 算法學習與應用從入門到精通
- 張玲玲
- 1131字
- 2019-01-05 04:15:44
1.3 在計算機中表示算法的方法
知識點講解:光盤:視頻講解\第1章\在計算機中表示算法的方法.avi
在1.2.1節中演示的算法都是通過語言描述來體現的。其實除了語言描述之外,還可以通過其他方法來描述算法。在接下來的內容中,將簡單介紹幾種表示算法的方法。
1.3.1 用流程圖來表示算法
流程圖的描述格式如圖1-1所示。

圖1-1 流程圖標識說明
再次回到1.2.1節中的問題。
假設有80個學生,要求打印輸出成績在60分以上的學生。
針對上述問題,可以使用圖1-2所示的算法流程圖來表示。

圖1-2 算法流程圖
在日常流程設計應用中,通常使用如下3種流程圖結構。
① 順序結構。順序結構如圖1-3所示,其中A和B兩個框是順序執行的,即在執行完A以后再執行B的操作。順序結構是一種基本結構。

圖1-3 順序結構
② 選擇結構。選擇結構也稱為分支結構,如圖1-4所示。此結構中必含一個判斷框,根據給定的條件是否成立來選擇是執行A框還是B框。無論條件是否成立,只能執行A框或B框之一,也就是說A、B兩框只有一個,也必須有一個被執行。若兩框中有一框為空,程序仍然按兩個分支的方向運行。

圖1-4 選擇結構
③ 循環結構。循環結構分為兩種,一種是當型循環,一種是直到型循環。當型循環是先判斷條件P是否成立,成立才執行A操作,如圖1-5(a)所示。而直到型循環是先執行A操作再判斷條件P是否成立,成立再執行A操作,如圖1-5(b)所示。

圖1-5 循環結構
上述3種基本結構有如下4個特點,這4個特點對于理解算法很有幫助。
① 只有一個入口。
② 只有一個出口。
③ 結構內的每一部分都有機會被執行到。
④ 結構內不存在“死循環”。
1.3.2 用N-S流程圖來表示算法
在1973年,美國學者提出了N-S流程圖的概念,通過它可以表示計算機的算法。N-S流程圖由一些特定意義的圖形、流程線及簡要的文字說明構成,能夠比較清晰明確地表示程序的運行過程。人們在使用傳統流程圖的過程中,發現流程線不一定是必需的,所以設計了一種新的流程圖,這種新的方式可以把整個程序寫在一個大框圖內,這個大框圖由若干個小的基本框圖構成,這種新的流程圖簡稱N-S圖。
遵循N-S流程圖的特點,N-S流程圖的順序結構圖1-6所示,選擇結構如圖1-7所示,循環結構如圖1-8所示。

圖1-6 順序結構

圖1-7 選擇結構

圖1-8 循環結構
1.3.3 用計算機語言表示算法
因為算法可以解決計算機中的編程問題,是計算機程序的靈魂,所以,可以使用計算機語言來表示算法。當用計算機語言表示算法時,必須嚴格遵循所用語言的語法規則。再次回到1.2.1節中的問題:1×2×3×4×5,如果用C語言編程來解決這問題,可以通過如下代碼實現。
main(){ int i, t; //定義兩個變量 t=1; i=2; //t初始值為1, i初始值為2 while(i<=5){ t=t*i; i=i+1; } printf("%d", t); }
上述代碼是根據1.2.1節中的語言描述算法編寫的,因為是用C語言編寫的,所以,需要嚴格遵循C語言的語法。例如在上述代碼中,主函數main()、變量和printf()輸出信息都遵循了C語言的語法規則。
- 從零構建知識圖譜:技術、方法與案例
- Google Apps Script for Beginners
- 程序員面試算法寶典
- JIRA 7 Administration Cookbook(Second Edition)
- AngularJS Web Application Development Blueprints
- Programming ArcGIS 10.1 with Python Cookbook
- Serverless架構
- Programming with CodeIgniterMVC
- Hands-On Nuxt.js Web Development
- Python機器學習算法與應用
- 算法秘籍
- 數字媒體技術概論
- Android高級開發實戰:UI、NDK與安全
- Clojure編程樂趣
- Learning ROS for Robotics Programming