一、資料結構和演算法的關係
資料 data 結構(structure)是一門研究組織資料方式的學科,有了程式語言也就有了資料結構.學好資料結構編寫出更加漂亮,更加有效率的**。
要學習好資料結構就要多多考慮如何將生活中遇到的問題,用程式去實現解決
程式 = 資料結構 + 演算法
資料結構是演算法的基礎, 換言之,想要學好演算法,需要把資料結構學到位。
二、線性結構和非線性結構
資料結構包括:線性結構和非線性結構。2、線性結構
線性結構作為最常用的資料結構,其特點是資料元素之間存在一對一的線性關係。
線性結構有兩種不同的儲存結構,即順序儲存結構(陣列)和鏈式儲存結構(鍊錶)。順序儲存的線性表稱為順序表,順序表中的儲存元素是連續的。
鏈式儲存的線性表稱為鍊錶,鍊錶中的儲存元素不一定是連續的,元素節點中存放資料元素以及相鄰元素的位址資訊。
線性結構常見的有:陣列、佇列、鍊錶和棧。
3、非線性結構
非線性結構包括:二維陣列,多維陣列,廣義表,樹結構。
演算法學習筆記(一) 演算法概述
一 演算法 演算法就是任何良定義的計算過程,該過程將某個值或值的集合作為輸入並產生某個值或值得集合作為輸出 亦可將演算法看作是用於求正確解的計算問題的工具。一般情況下,問題陳述了期望的輸入和輸出之間的集合對映關係 而演算法則描述乙個特定的計算過程來實現問題的輸入和期望的輸出之間的對映關係。二 np問...
演算法設計與分析 算法學基礎(一) 算法學概述
分類目錄 演算法設計與分析 總目錄 算法學基礎 二 分析演算法 算法學基礎 三 漸進記號 演算法定義的是計算過程,該過程取某個值或值的集合作為輸入並產生某個值或值的集合作為輸出。這樣演算法就是把輸入轉換成輸出的計算步驟的乙個序列。我們也可以把演算法看成是用於求解良說明的計算問題的工具。一般來說,問題...
基礎演算法學習筆記
解決演算法問題的思路 1 列舉 核心問題 1.避免無用的組合可以減少列舉的次數 2.找到列舉的規律 3.是否存在乙個區域性,一旦這個區域性確定,其他部分也確定了 2 遞迴 核心問題 1.後一項依賴前一項的結果,如等差 等比數列 2.從大到小考慮 3.本身問題的定義包含遞迴,如a的定義用到了自身a,並...