資料結構和演算法 緒論

2022-09-12 04:06:13 字數 2055 閱讀 7603

一、概念

資料結構就是資料元素之間存在一種或多種特定關係的集合;資料結構是帶 「結構」 的資料元素的集合,「結構」 就是指資料元素之間存在的關係

資料結構主要研究非數值計算的問題(無法用數學方程建立數學模型),學生學籍管理系統、最短路徑問題等

二、資料結構的分類

在傳統上我們把資料結構分為抽象的邏輯結構和在計算機上實現的儲存結構。我們少有研究資料,因為資料在計算機中的表現形式都是以二進位制方式儲存

邏輯結構有兩種要素,一是資料元素、二是資料元素之間的關係。由於前文提到資料在計算機中都是以二進位制形式儲存,所以不多做考究;而資料元素之間的關係大體上有四種基本型別,如列表:

名稱圖示

關係集合結構

除了結構中元素同

屬於一種外無其他關係

線性結構

資料元素之間一對一關係

樹結構資料元素之間一對多關係

圖結構

資料元素之間多對多關係

資料的邏輯結構是從邏輯關係上描述資料,它與資料的儲存無關,是獨立於計算機的。所以可以把邏輯結構看成是抽象的數學模型。

從邏輯上可以分為線性結構和非線性結構

資料在計算機中的儲存方式。

資料元素在計算機中有兩種基本的儲存結構,是順序儲存結構和鏈式儲存結構。

順序儲存結構:用元素在儲存器中物理位置來表示資料元素的邏輯位置,一般用陣列來實現順序儲存結構

特點:儲存空間必須連續 ; 

鏈式儲存結構:用結點來表示資料元素,用結點中的指標來表示資料元素之間的關係。

特點:儲存空間不必連續;

結構導圖:

三、演算法和演算法分析

演算法是為了解決某類問題而規定有限長的乙個的操作序列。

如果想構造乙個程式的話,資料結構和演算法正是程式中不可缺少的支柱。

乙個演算法必須滿足的五個特性

當我們寫出乙個程式後,如何去評估程式所用演算法的優劣呢? 

以下是評估演算法優劣標準

好了,現在你已經知道評估標準了,讓我們進行對高效性的下一步學習

高效性包括時間和空間兩個部分,分別對應著時間複雜度空間複雜度

計算時間複雜度步驟

(1)找出演算法的基本語句:執行次數最多的那條語句

(2)計算基本語句的執行次數的數量級:基本語句執行次數中最高次冪

(3)用大o表示法表示演算法的時間效能:eg:  o(最高次冪)

時間複雜度有分為:

演算法在最好情況下的時間複雜度,指的是演算法計算量可能達到的最小值;演算法在最壞情況下的時間複雜度為最壞時間複雜度,指的是演算法計算量可能達到的最大值;而平均時間複雜度是指演算法在所有可能的情況下,按照輸入例項以等概率出現時,演算法計算量的加權平均值。

對於時間複雜度的度量,人們通常說的是最壞時間複雜度。

演算法執行時間並不以秒為單位,而是從其增速的角度量算

表示空間複雜度用的是大o表示法

由於材料和工藝上的提公升,現在的儲存空間用來跑程式已經較為充足,所以人們都以演算法的時間複雜度作為演算法優劣的衡量指標。對於空間複雜度不再進行過多的描述。

2020-06-27

資料結構和演算法緒論

讓程式設計改變世界 change the world by program 資料結構和演算法這門計算機必修課歷來無論在哪個學校,都是無比乏味和催人入睡的。因為很多時候,考研玩的不是智商,其實就是乙個人投入的時間而已。什麼是資料結構?資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間...

資料結構和演算法緒論

資料是資訊的載體,是描述客觀事物的數 字元,以及所有能輸入到計算機中並被電腦程式識別和處理的符號的集合。資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作等相關問題的學科 簡單來說 程式設計 資料結構 演算法 資料結構研究的就是關係,就是資料元素相互之間存在的一種或多種...

資料結構和演算法緒論

程式設計 資料結構 演算法 資料結構就是關係,沒錯,就是資料元素相互之間存在的一種或多種特定關係的集合。資料型別 是指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。原子型別 是不可以再分解的基本型別,包括整型 實型 字元型等。結構型別 自若干個型別組合而戚,是可以再分解的。例,整型陣列是由...