資料結構 緒論

2021-07-27 03:45:55 字數 3434 閱讀 5302

1.程式設計:為計算機處理問題編制,一組指令集

2.演算法:處理問題的策略

3.資料結構:問題的數學模型

4.資料結構是一門討論「描述現實世界實體的數學模型(非數值計算)及其上的操作在計算機中如何表示和實現」的學科。

5.資料:所有能被輸入到計算機中,且能被計算機處理的符號的集合。是計算機操作的物件的總稱。是計算機處理的資訊的某種特定的符號表示形式。

資料元素:是資料(集合)中的乙個「個體」,是資料結構中討論的基本單位

資料項:是資料結構中討論的最小單位,資料元素可以是資料項的集合。

資料結構:帶結構的資料元素的集合,或者說,資料結構是相互之間存在著某種邏輯關係的資料元素的集合。

6.資料的邏輯結構可歸結為以下四類:

線性結構 

樹形結構 

圖狀結構 

集合結構

7.資料結構的形式定義為:

資料結構是乙個二元組 data_structures = (d, s) 其中:

d 是資料元素的有限集,

s 是 d上關係的有限集。

8.資料的儲存結構=邏輯結構在儲存器中的映象

關係的映象方法(表示的方法):

順序映象以相對的儲存位置表示後繼關係 例如:令 y 的儲存位置和 x 的儲存位置之間差乙個常量 c,而 c 是乙個隱含值,整個儲存結構中只含資料元素本身的資訊

鏈式映象以附加資訊(指標)表示後繼關係 需要用乙個和 x 在一起的附加資訊指示 y 的儲存位置

9.資料型別是乙個值的集合和定義在此集合上的一組操作的總稱。

10抽象資料型別(abstract datatype 簡稱adt)是指乙個數學模型以及定義在此數學模型上的一組操作。

adt 有兩個重要特徵:

資料抽象用adt描述程式處理的實體時,強調的是其本質的特徵、其所能完成的功能以及它和外部使用者的介面(即外界使用它的方法)。

資料封裝將實體的外部特性和其內部實現細節分離,並且對外部使用者隱藏其內部實現細節。

抽象資料型別的描述方法

抽象資料型別可用(d,s,p)三元組表示。

d 是資料物件;

s 是 d 上的關係集;

p 是對 d 的基本操作集。

抽象資料型別的表示和實現 抽象資料型別需要通過固有資料型別(高階程式語言中已實現的資料型別)來實現。

11.演算法是為了解決某類問題而規定的乙個有限長的操作序列。乙個演算法必須滿足以下五個重要特性:

①有窮性  對於任意一組合法輸入值,在執行有窮步驟之後一定能結束,即:演算法中的每個步驟都能在有限時間內完成。

②確定性  對於每種情況下所應執行的操作,在演算法中都有確切的規定,使演算法的執行者或閱讀者都能明確其含義及如何執行。並且在任何條件下,演算法都只有一條執行路徑。

③可行性  演算法中的所有操作都必須足夠基本,都可以通過已經實現的基本操作運算有限次實現之。

④有輸入  作為演算法加工物件的量值,通常體現為演算法中的一組變數。有些輸入量需要在演算法執行過程中輸入,而有的演算法表面上可以沒有輸入,實際上已被嵌入演算法之中。

⑤有輸出 它是一組與「輸入」有確定關係的量值,是演算法進行資訊加工後得到的結果,這種確定關係即為演算法的功能。

演算法設計的原則

①正確性 程式對於精心選擇的、典型、苛刻且帶有刁難性的幾組輸入資料能夠得出滿足要求的結果;演算法是否合格的標準

②可讀性

③健壯性 當輸入的資料非法時,演算法應當恰當地作出反映或進行相應處理,而不是產生莫名奇妙的輸出結果。並且,處理出錯的方法不應是中斷程式的執行,而應是返回乙個表示錯誤或錯誤性質的值,以便在更高的抽象層次上進行處理。

④高效率與低儲存量需求 通常,效率指的是演算法執行時間;儲存量指的是演算法執行過程中所需的最大儲存空間,兩者都與問題的規模有關。

演算法效率的衡量方法和準則,通常有兩種衡量演算法效率的方法:事後統計法 (缺點:①必須執行程式②其它因素掩蓋演算法本質)事前分析估算法

①演算法選用的策略 ②問題的規模 ③編寫程式的語言④編譯程式產生的機器**的質量 ⑤計算機執行指令的速度

12.乙個特定演算法的「執行工作量」的大小,只依賴於問題的規模(通常用整數量n表示),或者說,它是問題規模的函式。

乙個特定演算法的「執行工作量」的大小,只依賴於問題的規模(通常用整數量n表示),或者說,它是問題規模的函式。

假如,隨著問題規模 n 的增長,演算法執行時間的增長率和 f(n) 的增長率相同,則可記作:t (n) = o(f(n))稱t (n) 為演算法的(漸近)時間複雜度。

13.如何估算演算法的時間複雜度?

演算法 = 控制結構 +原操作(固有資料型別的操作)

演算法的執行時間 =∑原操作(i)的執行次數×原操作(i)的執行時間

演算法的執行時間  與 原操作執行次數之和    成正比

從演算法中選取一種對於所研究的問題來說是基本操作的原操作,以該基本操作在演算法中重複執行的次數作為演算法執行時間的衡量準則。

時間複雜度關係分析為:

o(1)–  指數時間的關係為:

o(2n)14.演算法的空間複雜度定義為:

s(n) = o(g(n))表示隨著問題規模 n 的增大,演算法執行所需儲存量的增長率與 g(n) 的增長率

15.演算法的儲存量包括:

輸入資料所佔空間

程式本身所佔空間

輔助變數所佔空間

輸入資料所佔空間只取決於問題本身,和演算法無關,則只需要分析除輸入和程式之外的輔助變數所佔額外空間

若所需額外空間相對於輸入資料量來說是常數,則稱此演算法為原地工作

若所需儲存量依賴於特定的輸入,則通常按最壞情況考慮。

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

資料結構 緒論

程式 資料結構 演算法 資料 對客觀事物的符號表示。資料元素 資料的基本單位,由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 性質相同的資料元素的集合,使資料的乙個子集。資料元素是相互之間存在一種或多種特定關係的資料元素的集合。預定義常量型別 函式結果狀態嗎 define true 1...

資料結構緒論

資料結構是一種抽象資料的過程,這種能力是任何工具都無法代替的。學習資料結構的目的 資料結構是計算機專業的基礎,它為幾乎所有的軟體設計的基礎。同時他也培養求解複雜問題的能力。那麼,什麼是資料結構呢,這個概念是很重要的,人月神話上有一段話,說人們往往喜歡將問題分解開來處理,但是這樣一來造成了對整個問題的...