一 :基本概念
1.資料結構的基本概念:資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。
用通俗一點的語言來說就是研究資料元素之間特有的關係。
2.演算法的基本概念:是解決一系列問題的清晰,完整的指令。可以模擬於高中數學解題中的乙個個詳細的步驟。
二: 資料結構的分類
資料結構分為兩類:1. 資料結構的儲存結構 2. 資料結構的邏輯結構
1.什麼是資料結構的儲存結構:是指資料元素及其邏輯關係在儲存器上的存放形式。
2.什麼是資料結構的邏輯結構:是指反映資料元素之間的邏輯關係。這種關係是人為解決某些問題而構想出來的。
3.資料結構儲存結構的分類:
一:順序儲存結構:在物理記憶體或者邏輯記憶體上獲得一塊連續的區域,將資料儲存在這塊連續的一塊區域中。
進而找到下乙個結點的資料域。
ps: 順序儲存結構和鏈式儲存結構的各自優點:
鏈式儲存適用於在較頻繁地插入、刪除元素時,而順序儲存結構適用於頻繁查詢資料的使用。
四:雜湊儲存結構:雜湊儲存,又稱hash儲存,一種將資料元素的儲存位置與關鍵碼之間建立確定對應關係的查詢技術。
4.資料結構邏輯結構的分類:
一.線性結構:陣列 鍊錶 棧 佇列
二.非線性結構:集合 樹結構 圖結構
三:演算法的五大特點:(有確出入行)
1.有窮性:有窮性是演算法必須在有限個步驟完成之後終止。
2.確定性:確定性是演算法的每個步驟都必須要有確切的含義。
3.輸入性:輸入性是演算法需要有0個或者多個輸入,用來刻畫演算法的初值。
4.輸出性:輸出性是相對應演算法的輸入性,對輸入的資料進行加工和處理後所輸出的資料,至少有乙個或者多個輸出。
5.可行性:可行性是演算法要能夠進行每一步的精確執行而不發生錯誤。
例題1:
以下特徵中,( )不是演算法的特性。
a.有窮性
b.確定性
c.0個或者多個輸出
d.可行性選c。解析:輸出為1個或多個輸出。
例題2:
演算法的特點中不包括( )
a.有窮性
b.健壯性
c.確定性
d.輸入和輸出選b。解析:演算法的健壯性屬於演算法的設計目標(如下所述),不屬於它的特點。
四.演算法設計五大目標
1.正確性:顧名思義,演算法的設計不能是錯誤的。
2.可讀性:可讀性是指演算法設計要便於人類理解和閱讀。
3.健壯性:健壯性是指當演算法發生錯誤時,要有一定的處理不可預料錯誤的能力。通俗地說就是演算法自己本身的容錯率。
4.高時間效率:演算法的時間效率是演算法的執行時間。
5.高空間效率:演算法的空間效率四演算法執行所用的記憶體空間。
五.演算法的時間複雜度和空間複雜度
1.演算法時間複雜度(演算法時間效率):用來表示演算法執行的時間。通常用「大o符號表示法」,即 t(n) = o(f(n))。
2.演算法空間複雜度(演算法空間效率):用來表示演算法所佔據的記憶體空間。
兩者總結:通常來說時間複雜度和空間複雜度是相互制約。當追求乙個好的時間複雜度時,可能會使空間複雜度效能變差。當追 求乙個好的空間複雜度時,可能會使時間複雜度效能下降。就是我們常用說的用空間換取時間或者用時間換取空間。
資料結構與演算法概念
資料結構是個抽象的概念,所以並沒有官方的定義,資料結構 演算法於應用 中是這樣來定義的 資料結構是資料物件,以及存在於該對像的例項以及組成例項的資料元素間的各種聯絡,這種聯絡可以通過定義相關函式來給出。我所理解的資料結構是資料元素之間的關係所構成的某種集合。樹和圖,就是很好的例子,他們是根據資料元素...
資料結構與演算法 概念
計算機從解決數值計算問題到解決生活中的問題 現實生活中的問題涉及不同個體間的複雜聯絡 需要在電腦程式中描述生活中個體間的聯絡 資料結構主要研究非數值計算程式問題中的操作物件以及它們之間的關係而不是研究複雜的演算法 基本概念 資料 程式的操作物件,用於描述客觀事物 資料的特點 可以輸入到計算機 可以被...
資料結構與演算法(一) 資料結構與演算法概念
資料結構是計算機儲存 組織資料的方式。資料結構是指資料與資料之間的關係。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。資料結構往往同高效的檢索演算法和索引技術有關。邏輯結構 示意圖1 集合結構 2 線性結構 3 樹形結構 4...