王道408数据结构——第一章 绪论
生活随笔
收集整理的這篇文章主要介紹了
王道408数据结构——第一章 绪论
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、概念
- 數據結構研究內容
- 二、數據三要素
- 邏輯結構
- 儲存結構(物理結構)
- 運算
- 三、算法和算法評價
- 時間復雜度
- 空間復雜度
- 四、數字相關匯總
- 算法性能
- 二叉樹相關
- 圖相關
- 矩陣相關
一、概念
數據結構研究內容
數據結構是一門研究在非數值計算中,計算機的操作對象、對象間關系以及施加于對象的操作的學科。
- 數據元素
數據的基本單位,可由若干數據項構成。 - 數據項(屬性)
構成數據元素的不可分割的最小單位。 - 數據對象
具有相同性質的數據元素的集合,是數據的一個子集。 - 數據類型
值的集合以及對應操作。- 原子類型:不可再分
- 結構類型:可以分解為若干分量
- 抽象數據類型:抽象數據組織及與之相關的操作。
- 數據結構
互相之間存在一種或多種特定關系的數據元素的集合。- 結構:數據元素之間的關系稱為結構,分為邏輯結構、儲存結構和運算。
- 算法的設計取決于邏輯結構,算法的實現取決于存儲結構。
- 算法:算法是對待定問題求解步驟的一種描述,它是指令的有限序列,其中每條指令表示一個或多個操作。此外,算法還具有有窮性、確定性、可行性、輸入和輸出五個基本特點。
二、數據三要素
邏輯結構
指數據元素之間的邏輯關系,獨立于計算機,與數據元素本身的形式、內容、相對位置、個數無關。分為線性結構和非線性結構。
| 數據的邏輯結構 | ||||||||
| 線性結構 | 非線性結構 | |||||||
| 一般線性表 | 受限線性表 | 線性表推廣 | 集合 | 樹形結構 | 圖狀結構 | |||
| 棧和隊列 | 串 | 數組 | 一般樹 | 二叉樹 | 有向圖 | 無向圖 | ||
- 集合:結構中的元素除"同屬一個集合外"再無其他關系.
- 線性結構:集合中的元素只存在一對一的關系.
- 樹形結構:集合中的元素存在一對多的關系.
- 圖(網)狀結構:集合中的元素存在多對多的關系.
儲存結構(物理結構)
指數據結構在計算機中的表示(映像),依賴于計算機語言,分為順序存儲、鏈式存儲、索引存儲和散列存儲。
- 順序存儲:
把邏輯上相鄰的元素儲存在物理位置也相鄰的儲存單元中。優點是可以隨機存取、每個元素可以占用最少的空間;缺點是可能產生較多的外部碎片。 - 鏈式存儲
借助指示元素存儲地址的指針來表示元素的邏輯關系。優點是不會產生碎片,充分利用儲存單元;缺點是指針會占用額外空間、且只能順序存取。 - 索引存儲
建立附加的索引表,表中每項稱為索引項。優點是檢索速度快;缺點是索引表占用額外空間、增刪數據也要修改索引表,花費較多時間。 - 散列儲存(哈希存儲)
根據元素的關鍵字直接計算出該元素的儲存地址。優點是檢索、增刪元素快;缺點是若散列函數不好,會出現散列沖突
文件的物理記錄和邏輯記錄間可以存在三種關系:
- 一個物理記錄存放一個邏輯記錄
- 一個物理記錄存放多個邏輯記錄
- 多個物理記錄存放一個邏輯記錄
運算
施加在數據上的運算包括運算的定義和實現。
運算的定義針對邏輯結構,指出運算的功能;運算的實現針對物理結構,針對運算的具體操作步驟。
三、算法和算法評價
算法是對特定問題求解步驟的一種描述,是指令的有限序列。具有以下個重要特性:
好的算法還要考慮一下目標:
時間復雜度
語句的頻度是指起在算法中被執行的次數,算法中所有語句的頻度之和記為T(n),它是算法問題規模n的函數。時間復雜度用于衡量T(n)的數量級。
也指在最壞情況下,估算算法執行時間的一個上界。
算法的時間復雜度不僅依賴于問題的規模,也依賴于待輸入數據的性質。一般總是考慮算法在最壞情況下的復雜度。
空間復雜度
該算法耗費的儲存空間,是問題規模n的函數S(n)。
算法原地工作是指算法所需的輔助空間為常量。
四、數字相關匯總
算法性能
| 順序表的插入 | O(1)O(1)O(1) | O(n)O(n)O(n) | 1n\frac{1}{n}n1?/O(n)O(n)O(n) |
順序表的刪除
二叉樹相關
圖相關
矩陣相關
總結
以上是生活随笔為你收集整理的王道408数据结构——第一章 绪论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件项目组织管理(十)项目沟通管理
- 下一篇: 王道408数据结构——第二章 线性表