資料結構基礎學習之緒論

h_dj發表於2019-04-05

簡介

  1. 參考書籍:
    • 資料結構 Java語言描述第二版
    • 大話資料結構
  1. 時間複雜度
  2. 線性表的學習
  3. 棧與佇列學習
  4. 串與陣列
  5. 樹與二叉樹的學習
  6. 圖的學習
  7. 排序
  8. 查詢

一、基本概念和術語

1. 資料(Data)

  • 資料是資訊的載體,是對客觀事物的符號表示,能夠被計算機程式識別,儲存、加工和處理
  • 資料還包括影象聲音等非數值資料

2. 資料元素(Data Element)

  • 資料元素是資料的基本單位。資料元素也稱元素、結點、頂點、記錄。

3. 資料項(Data Item)

  • 一個資料元素可以由若干個資料項(也可稱為欄位、域、屬性)組成。
  • 資料項是具有獨立含義的最小標識單位。

4. 資料物件(Data Object)

  • 是相同資料元素組成的集合

5. 資料結構(Data Structure)

一、含義:資料結構指的是資料之間的相互關係,即資料的組織形式。

二、資料結構包括內容

  1. 資料邏輯結構(Logical Structure)
  • 定義:
    1. 資料的邏輯結構是從邏輯關係上描述資料,與資料的儲存無關,獨立於計算機。
    2. 邏輯結構可以看作是從具體問題抽象出來的數學模型。
    3. 資料的邏輯結構是各個資料元素之間的邏輯關係
  • 分類
    • 線性結構
    • 非線性結構
      1. 集合
      2. 樹形結構
      3. 圖形結構
  1. 資料的儲存結構(Storage Structure)
  • 定義:
    • 資料元素及其關係在計算機儲存器內的表示,稱為資料的儲存結構(Storage Structure);
    • 資料的儲存結構是邏輯結構用計算機語言的實現(亦稱為映象),它依賴於計算機語言。
    • 對機器語言而言,儲存結構是具體的。一般,只在高階語言的層次上討論儲存結構。
  • 儲存方式:
    1. 順序儲存方式
    2. 鏈式儲存方式
    3. 索引儲存方式
    4. 雜湊儲存(雜湊儲存)方式
  1. 資料的操作
  • 定義:
    • 資料操作就是對資料進行某種方法的處理,也稱資料運算
    • 資料的運算定義在資料的邏輯結構上,每種邏輯結構都有一個運算的集合。
    • 最常用的檢索、插入、刪除、更新、排序等運算實際上只是在抽象的資料上所施加的一系列抽象的操作。

二、演算法與演算法分析

1. 演算法:

  • 定義: 對特殊問題進行求解步驟的一種描述
  • 性質:
    1. 有窮性
    2. 有限性
    3. 有效性
    4. 輸入
    5. 輸出
  • 目標:
    1. 正確性
    2. 可讀性
    3. 健壯性
    4. 高效性(時間和空間)
  • 時間複雜度分析
    1. 演算法執行時間: 指令序列(i)的執行次數和 * 指令序列(i)執行時間
  • 空間複雜度分析
    1. 表示:S(n) = O(f(n))
    2. 固定空間需求(Fix space requiremnet): 程式程式碼、常量、變數所佔空間,與處理問題規模無關
    3. 可變空間需求(Variable space requirement): 輸入資料元素和程式執行所佔的空間,與處理問題規模相關

相關文章