簡介
- 參考書籍:
- 資料結構 Java語言描述第二版
- 大話資料結構
- 參考資料
- 演算法視覺化工具
- 學習的內容
- 時間複雜度
- 線性表的學習
- 棧與佇列學習
- 串與陣列
- 樹與二叉樹的學習
- 圖的學習
- 排序
- 查詢
一、基本概念和術語
1. 資料(Data)
- 資料是資訊的載體,是對客觀事物的符號表示,能夠被計算機程式識別,儲存、加工和處理
- 資料還包括影象聲音等非數值資料
2. 資料元素(Data Element)
- 資料元素是資料的基本單位。資料元素也稱元素、結點、頂點、記錄。
3. 資料項(Data Item)
- 一個資料元素可以由若干個資料項(也可稱為欄位、域、屬性)組成。
- 資料項是具有獨立含義的最小標識單位。
4. 資料物件(Data Object)
- 是相同資料元素組成的集合
5. 資料結構(Data Structure)
一、含義:資料結構指的是資料之間的相互關係,即資料的組織形式。
二、資料結構包括內容
- 資料邏輯結構(Logical Structure)
- 定義:
- 資料的邏輯結構是從邏輯關係上描述資料,與資料的儲存無關,獨立於計算機。
- 邏輯結構可以看作是從具體問題抽象出來的數學模型。
- 資料的邏輯結構是各個資料元素之間的邏輯關係
- 分類
- 線性結構
- 非線性結構
- 集合
- 樹形結構
- 圖形結構
- 資料的儲存結構(Storage Structure)
- 定義:
- 資料元素及其關係在計算機儲存器內的表示,稱為資料的儲存結構(Storage Structure);
- 資料的儲存結構是邏輯結構用計算機語言的實現(亦稱為映象),它依賴於計算機語言。
- 對機器語言而言,儲存結構是具體的。一般,只在高階語言的層次上討論儲存結構。
- 儲存方式:
- 順序儲存方式
- 鏈式儲存方式
- 索引儲存方式
- 雜湊儲存(雜湊儲存)方式
- 資料的操作
- 定義:
- 資料操作就是對資料進行某種方法的處理,也稱資料運算
- 資料的運算定義在資料的邏輯結構上,每種邏輯結構都有一個運算的集合。
- 最常用的檢索、插入、刪除、更新、排序等運算實際上只是在抽象的資料上所施加的一系列抽象的操作。
二、演算法與演算法分析
1. 演算法:
- 定義: 對特殊問題進行求解步驟的一種描述
- 性質:
- 有窮性
- 有限性
- 有效性
- 輸入
- 輸出
- 目標:
- 正確性
- 可讀性
- 健壯性
- 高效性(時間和空間)
- 時間複雜度分析
- 演算法執行時間: 指令序列(i)的執行次數和 * 指令序列(i)執行時間
- 空間複雜度分析
- 表示:S(n) = O(f(n))
- 固定空間需求(Fix space requiremnet): 程式程式碼、常量、變數所佔空間,與處理問題規模無關
- 可變空間需求(Variable space requirement): 輸入資料元素和程式執行所佔的空間,與處理問題規模相關