在以前的兩篇文章中介紹了C語言的入門程序入門程序1,入門程序2,從這篇文章咱們就開始介紹C語言基礎。
今天來給你們介紹算法的特性和算法的表示。算法
算法包含兩方面的內容:算法設計和算法分析segmentfault
算法設計其實就是針對某一特定類型的問題而設計的一個實現過程。算法有如下幾個特性:學習
也就是說咱們在設計算法是的知足上面所說的特性。固然算法也是有好有壞的,那麼咱們怎樣去衡量一個算法的優劣呢?
算法分析其實就是在衡量一個算法的優劣,一般會從一下幾個方面來分析:spa
在描述一個算法時一般使用的方法有:天然語言、流程圖、N-S圖等。設計
天然語言這種表達方式通俗易懂,咱們經過一個具體的實例瞭解一下。
需求:任意輸入3個數,求出其中的最小數。
(1) 定義4個變量分別是a,b,c和min。
(2) 輸入大小不一樣的三個數分別賦值給a,b,c。
(3) 判斷a是否小於b,若是小於,則將a的值賦給min,不然將b的值賦給min。
(4) 判斷min是否小於c,若是小於,則執行(5),不然將c的值賦給min。
(5) 輸出min。
這種表達方式的好處就是簡單易懂,可是當遇到複雜的算法時天然語言就顯得不是很方便了。3d
流程圖就是用一些圖框來表明各類不一樣性質的操做,用流程線來指示算法的執行方向。他的特色就是直觀形象,應用很普遍。
下圖介紹了流程圖的符號以及含義
blog
流程圖有三種基本結構,即順序結構、選擇結構和循環結構。圖片
咱們再把上面的需求用流程圖來表示一下ip
N-S流程圖是將所有的算法寫在一個矩形框內,省去了流程圖中的流程線。下面繼續看一個實例:
需求:輸入一個數,判別是否爲素數。get
算法的基本特性和算法的表示介紹到就結束了。