資料結構筆記(一)

2022-07-04 10:09:09 字數 2933 閱讀 8895

程式的本質

1、程式是為了實際問題而存在,從本質上而言,程式是解決問題的步驟描述

2、程式鑑評:

(1)、用盡量少的記憶體空間解決問題

(2)、用盡量少的步驟去解決問題

資料的藝術

1、資料結構的起源:資料結構主要研究非數值計算程式問題中的操作物件以及它們之間的關係

2、資料:程式的操作物件,用於客觀描述事物

資料元素:組成資料的基本單位

資料物件:性質相同的資料元素的集合

資料項:乙個資料元素由若干個資料項組成

用此圖更直觀其之間的關係:

3、資料元素之間不是獨立的,存在特點的關係,這些關係即結構

4、資料結構指資料物件中資料元素之間的關係

如:陣列中各元素之間存在固定的線性關係

5、邏輯結構

(1)集合結構:資料元素之間沒有特別的關係,僅同屬相同集合

(2)線性結構:資料元素之間是一對一的關係

(3)樹形結構:資料元素之間存在一對多的關係

(4)圖形結構:資料元素之間是多對多的關係

6、物理結構

概念:邏輯結構在計算機的儲存形式

(2)鏈式儲存結構:將資料儲存在任意的儲存單元裡,通過儲存位址的方式找到相關聯的資料元素

程式的靈魂——演算法

1、資料結構只是靜態地描述了資料元素之間的關係

2、高效的程式需要在資料結構的基礎上設計和選擇演算法

3、高效的程式=恰當的資料結構+合適的演算法

4、演算法的定義:  是特定問題求解步驟的描述

演算法是獨立存在的一種解決問題的方法好思想

對於演算法而言,語言並不重要,重要的是思想

5、演算法的特性:

輸入、輸出、又窮性、確定性、可行性

審判程式的靈魂

1、演算法的時間複雜度

大o表示法

(1)、演算法效率嚴重依賴於運算元量

(2)、在判斷時首先關注運算元量的最高次項

(3)、運算元量的估算可以作為時間複雜度的估算

最好與最壞:

(1)意義:當演算法在最壞的情況下仍能滿足需求時,可以推斷,演算法的最好情況和平均情況都滿足需求

在沒特殊說明時,我們所分析的演算法的時間複雜度都是指最壞的時間複雜度

2、演算法的空間複雜度

(1)、通過計算演算法的儲存空間實現:s(n) = o(f(n))

其中n為問題規模,f(n)為為在問題規模為n所占用儲存空間的函式

大o表示法同樣適用於演算法的空間複雜度

3、空間和時間的需求

(1)、多數情況下,演算法執行時所用的時間更令人關注

(2)、如果有必要,可以通過增加空間複雜度來降低時間複雜度

資料結構筆記(一)

資料結構的起源 1.數值計算與非數值計算 2.資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。3.程式設計 資料結構 演算法 什麼是資料 資料是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符合集合。而這些符號必...

資料結構 筆記(一)

資料結構分為四類 集合 元素間無內在關係 線性 一對一關係 樹型 一對多關係 圖型 多對多關係 儲存方式 順序儲存 連續,類似於排隊 鏈式儲存 可以不連續,通過儲存其他元素位址可得到,類似於醫院叫號 演算法要素 輸入,輸出,有窮性,確定性 不會有二意 可行性 演算法要求 正確性 1.無語法錯誤 2....

資料結構 筆記(一)

資料結構分為四類 集合 元素間無內在關係 線性 一對一關係 樹型 一對多關係 圖型 多對多關係 儲存方式 順序儲存 連續,類似於排隊 鏈式儲存 可以不連續,通過儲存其他元素位址可得到,類似於醫院叫號 演算法要素 輸入,輸出,有窮性,確定性 不會有二意 可行性 演算法要求 正確性 1.無語法錯誤 2....