資料結構複習——緒論
最近在複習資料結構,期末了,整理一下。因為我學過一點JavaScript,所以會用兩種語言進行描述。
緒論
程式 = 演算法 + 資料結構
程式:為計算機處理問題編制的一組指令集。
演算法:處理問題的策略。
資料結構:問題的資料模型。
資料結構: 顧名思義,是相互之間存在一種或多種特定關係的資料元素的集合。
資料與資料結構
資料:是對客觀事務的符號表示,在電腦科學中是指所有能輸入到計算機中並被計算機程式處理的符號的總稱。 資料元素:是資料的基本單位,在計算機程式中通常作為一個整體進行考慮和處理。 資料項:多個數據項可組成一個數據元素,資料項是資料的不可分割的最小單位。 資料物件:是性質相同的資料元素的集合,是資料的一個子集。 資料結構:是相互之間存在一種或多種特定關係的資料元素的集合。
資料結構分類:幾何結構、線性結構、樹形結構、圖狀結構。
集合結構
線性結構
樹形結構
圖狀結構
資料結構包括“邏輯結構” 和“物理結構”兩個方面(層次):
邏輯結構 是對資料元素之間的邏輯關係的描述,它可以用一個數據元素的集合和定義在此集合上的若干關係來表示;
物理結構 是邏輯結構在計算機中的表示和實現,故又稱“儲存結構” 。
資料結構的形式定義描述為:
資料結構是一個二元組:
Data_Structures = (D, S)
D是資料元素的有限集,S是D上關係的有限集。
在不同的語言中,儲存結構可有不同的描述方法:
當用高階程式設計語言進行程式設計時,通常可用高階程式語言中提供的資料型別描述之。
二、資料型別
在JavaScript或者C語言中會有各自的資料型別,不過不同的是,JavaScript是弱型別語言(資料型別可以被忽略)。
C語言中提供的基本資料型別有:
- 整型 int
- 浮點型 float
- 雙精度 double
- 字元型 char
- 邏輯型 bool
JavaScript中提供的基本資料型別有:
資料型別是一個值的集合和定義在此集合上的一組操作的總稱。
三、演算法和演算法分析
演算法——是對特定問題求解步驟的一種描述,是有限指令集。
演算法的五個特性:有窮性、確定性、可行性、輸入、輸出。
演算法設計原則:正確性、可讀性、健壯性、高效率與低儲量需求
度量演算法效率的方法:事後統計法、事前分析估演算法
如何估算演算法的時間複雜度?
- 演算法的執行時間:
所有語句執行時間的總和 = 語句的執行次數*執行一次所需要的時間