1.基本術語
- 資料項
(資料項可以是不可分割的原子,也可以由若干資料項構成為具有獨立意義的最小單位)
(eg.蔗糖原子) - 資料元素
(資料元素是表示資料的基本單位)
(eg.一顆糖果) - 資料物件
(相同資料元素的集合,資料的子集)
(eg.糖罐子) - 資料
特點:1.能輸入計算機 2.能被計算機程式識別和處理) - 資料結構
(資料結構是存在關係的資料元素構成的集合)
資料項<資料元素<資料物件<資料
2.三個要素
三要素:邏輯結構,儲存結構,資料運算
邏輯結構 | 物理(儲存)結構 |
---|---|
* 集合結構 | * 順序儲存結構 |
* 線性結構 | * 鏈式儲存結構 |
* 樹形結構 | |
* 圖形結構 |
(線性:一對一 樹形:一對多 圖形:多對多)
資料運算:是指對資料元素實施的操作,包括運算的定義和運算的實現,運算的定義取決於資料的邏輯結構,運算的實現取決於資料的儲存結構
3.演算法的定義與評價
定義 | 評價 |
---|---|
輸入性 | 正確性 |
輸出性 | 可讀性 |
確定性 | 健壯性 |
可行性 | 高效性 |
有窮性 |
4.演算法的效能分析
分析方法:事後統計法,事前分析法
分析內容:時間複雜度,空間複雜度
(判斷一個演算法的效率時,函式中的常數和其他次要項常常可以忽略,更應該關注主項(最高層階)的階數)
時間複雜度:大O記法
注意:不管這個常數是多少,我們都記作O(1),而不能是O(3)、O(12)等其他任何數字,這是初學者常常犯的錯誤。
空間複雜度:S(n)=O(f(n))