資料結構學習第一章 基本概念和術語

2021-09-25 02:29:27 字數 2258 閱讀 1234

資料結構這一概念,至今尚未有乙個被一致公認的定義。

資料結構是相互之間存在一種或多種特定關係的資料元素的集合。----這是書本的簡單解釋。

在我眼裡資料結構主要學習的就是這些所謂的特定關係的表達與應用。

資料結構在計算機中的映像為儲存結構

根據資料元素之間關係的不同特性,通常有4類基本結構:

1.集合

結構中的資料元素之間除了「同屬於乙個集合」的關係外,別無其他關係。

2.線性結構

結構中的資料元素之間存在乙個對乙個的關係。

3.樹形結構

結構中的資料元素之間存在乙個對多個的關係。

4.圖狀結構

結構中是資料元素之間存在多個對多個的關係。

資料(data)是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。

我們需要注意的資料是針對特定程式而言的。

資料元素(data element)是資料的基本單位,在電腦程式中通常作為乙個整體考慮處理。

若干個資料項構成資料元素。資料項(data item)是資料的不可分割的最小單位。

在計算機中的映像為節點(node)或元素(element)。

資料物件(data object)是性質相同的資料元素的集合,是資料的乙個子集。

這是資料元素之間的關係在計算機中的表示方法。

1.順序儲存結構

借助元素在儲存器中的相對位置來表示資料元素之間的邏輯關係。

2.鏈式儲存結構

借助指示元素儲存位址的指標(pointer)表示資料元素之間的邏輯關係。

我們在學習中用資料型別來描述儲存結構。

再用高階程式語言編寫的程式中,每個變數、常量或者表示式都有乙個它所屬於的確定的資料型別。

型別明顯或者隱含的規定了在程式執行期間變數或者表示式所有可能取值的範圍,以及在這些值上允許的操作。

因此,資料型別(data type)是乙個值的集合和定義在這個值集上的一組操作的總稱。通常分為原子型別與結構型別。

抽象資料型別(abstract data type。簡稱adt)與資料型別概念相同,是資料型別數學特性的抽象。通常分為原子型別、固定聚合型別與可變聚合型別。

演算法(algorithm)是對特定問題求解步驟的一種描述,它是指令的有限序列,其中沒一條指令表示乙個或多個操作。演算法的5個特性:

1.有窮性

乙個演算法必須總是在執行有窮步驟後結束,且每一步都可在有窮時間內完成。

2.確定性

演算法中每一條指令必須有確切的含義,不會產生二義性。並且,在任何條件下,演算法只有唯一的一條執行路徑,即對相同的輸入只能得出相同的輸出。

3.可行性

乙個演算法是能行的,即演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現的。

4.輸入

乙個演算法有0個或者多個的輸入,這些輸入取自於某個特定的物件的集合。

5.輸出

乙個演算法有乙個或者多個的輸出,這些輸出是同輸入有著某些特定關係的量。

乙個演算法是由控制結構(順序、分支、迴圈)和原操作(指固有資料型別的操作)構成的。

漸進時間複雜度(asymptotic time complexity),簡稱時間複雜度。

一般情況下,演算法中基本操作重複執行的次數是問題規模n的某個函式f(n)。

t(n)=o(f(n))

它表示隨著問題規模n的擴大,演算法執行時間的增長率和f(n)的增長率相同。

顯然,被稱作問題的基本操作應該是其重複執行次數和演算法的執行時間成正比的原操作,多數情況下它是最深層迴圈內的語句中的原操作,它的執行次數和包含它的語句的頻度相同。語句的頻度(frequency count)指的是該語句的重複執行的次數。

一般情況下,對乙個問題(或一類演算法)只需選擇一種基本操作來討論演算法的時間複雜度即可,有時也需要同時考慮幾種基本操作,甚至可以對不同的操作賦予不同的權值,以反應執行不同操作所需的相對時間。

由於演算法的時間複雜度考慮的只是對於問題規模n的增長率,則在難以精確計算基本操作執行次數(或語句頻度)的情況下,只需求出它關於n的增長率或階即可。

除特別指明外,均求最壞情況下的時間複雜度。

資料結構 第一章 基本概念

很久之前學的資料結構,現在開始重新學習,盡量每乙個行 都會給解釋,加加油!一 基本概念 資料 data 是對客觀事物的符號表示,指所有能輸入到計算機中的並被電腦程式處理的符號的總稱。例如,乙個利用資料分析方法解代數方程的程式,其處理物件是整數和實數 乙個編譯程式或文字處理程式,其處理物件就是字串,也...

資料結構 第一章 資料結構的基本概念

基本概念和術語 資料結構三要素 邏輯結構 非線性結構 儲存結構 運算 演算法與演算法評價 1.演算法對特定問題求解步驟的一種描述,它是指令的有限序列,其中的每條指令表示乙個或多個操作。演算法五大性質 2.程式程式是某種程式語言對演算法的具體實現。3.演算法的評價 好 演算法的定義 時間複雜度 語句頻...

第一章 機器學習基本概念

1.機器學習主要是通過計算機在已有的資料上 經驗 產生相應的模型 學習演算法 在面臨新的情況時,模型能給出相應的判斷。所以說機器學習是研究學習演算法的學問。2基本術語 2.1以西瓜是否成熟為例,色澤 青綠 根蒂 蜷縮 敲聲 濁響 這一條記錄稱為乙個示例或樣本sample。樣本組成的集合稱為資料集 每...