數據的運算通過算法(Algorithm)描述討論算法是數據結構課程的重要內容之一
算法
非形式地說算法是任意一個良定義的計算過程它以一個或多個值作為輸入並產生一個或多個值作為輸出
()一個算法可以被認為是用來解決一個計算問題的工具
()一個算法是一系列將輸入轉換為輸出的計算步驟
【例】有這樣一個排序問題將一個數字序列排序為非降序
該問題的形式定義由滿足下述關系的輸入輸出序列構成
輸入數字序列〈a a …a n 〉
輸出輸出序列的一個枚舉〈a a …a n 〉使得a ≤a ≤…≤a
對於一個輸入實例〈〉排序算法應返回輸出序列〈〉
()輸入實例
輸入實例一個問題的輸入實例是滿足問題陳述中所給出的限制為計算該問題的解所需要的所有輸入構成的
()正確的算法和不正確的算法
若一個算法對於每個輸入實例均能終止並給出正確的結果則稱該算法是正確的正確的算法解決了給定的計算問題
一個不正確的算法是指對某些輸入實例不終止或者雖然終止但給出的結果不是所渴望得到的答案一般只考慮正確的算法
算法的描述
一個算法可以用自然語言計算機程序語言或其它語言來說明惟一的要求是該說明必須精確地描述計算過程
一般而言描述算法最合適的語言是介於自然語言和程序語言之間的偽語言它的控制結構往往類似於PascalC等程序語言但其中可使
用任何表達能力強的方法使算法表達更加清晰和簡潔而不至於陷入具體的程序語言的某些細節
從易於上機驗證算法和提高實際程序設計能力考慮采用C語言描述算法
【例】定義一個輸出錯誤信息後退出程序運行的錯誤處理函數該函數將在後續的許多程序中用來簡化處理代碼
# include //其中有exit的說明
# include //其中有標准錯誤stderr的說明
void Error(char*message)
{
fprintf(stderrError: % s \ n message) ; //輸出錯誤信息
exit() ; //終止程序返回給操作系統
}
From:http://tw.wingwit.com/Article/program/sjjg/201311/23527.html