C語言基礎-基本算法

在以前的兩篇文章中介紹了C語言的入門程序入門程序1入門程序2,從這篇文章咱們就開始介紹C語言基礎。
今天來給你們介紹算法的特性和算法的表示。算法

算法的基本特性

算法包含兩方面的內容:算法設計和算法分析segmentfault

算法設計其實就是針對某一特定類型的問題而設計的一個實現過程。算法有如下幾個特性:學習

  • 有窮性
  • 肯定性
  • 可行性
  • 輸入
  • 輸出

也就是說咱們在設計算法是的知足上面所說的特性。固然算法也是有好有壞的,那麼咱們怎樣去衡量一個算法的優劣呢?
算法分析其實就是在衡量一個算法的優劣,一般會從一下幾個方面來分析:spa

  1. 正確性
  2. 可讀性
  3. 健壯性
  4. 時間複雜度和空間複雜度

算法的表達方式

在描述一個算法時一般使用的方法有:天然語言、流程圖、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

流程圖有三種基本結構,即順序結構、選擇結構和循環結構。圖片

  • 順序結構:順序結構就是簡單的線性結構

clipboard.png

  • 選擇結構:選擇結構也稱爲分支結構

clipboard.png

  • 循環結構:反覆執行一系列操做,知道條件不成立時終止。

clipboard.png

咱們再把上面的需求用流程圖來表示一下ip

clipboard.png

N-S流程圖

N-S流程圖是將所有的算法寫在一個矩形框內,省去了流程圖中的流程線。下面繼續看一個實例:
需求:輸入一個數,判別是否爲素數。get

clipboard.png

算法的基本特性和算法的表示介紹到就結束了。


往期文章
C語言學習入門01
C語言學習入門02

相關文章
相關標籤/搜索