總結:
一、數據結構(Data Structure) 是數據的組織結構,用來組織、存儲(chu) 數據。算法(Algorithm) 就是解決(jue) 問題的方法或者過程。
二、數據結構分為(wei) 邏輯結構和物理結構。邏輯結構分為(wei) 集合結構、線性結構、樹形結構、圖形結構;物理結構分為(wei) 順序存儲(chu) 結構、鏈式存儲(chu) 結構。
三、算法是一係列運算步驟。算法有5個(ge) 基本特性,輸入、輸出、有窮性、確定性、可行性;算法最求5個(ge) 目標,正確性、可讀性、健壯性、運行時間少、內(nei) 存空間小。
四、「數組」 是實現線性表的順序結構存儲(chu) 的基礎;「鏈表」 是實現線性表的鏈式存儲(chu) 結構的基礎; 「棧」是一種後進先出的線性表;「隊列」是一種先進先出的線性表;「哈希表」是根據關(guan) 鍵碼值直接進行訪問的數據結構;「字符串」是由零個(ge) 或多個(ge) 字符組成的有限序列;「樹」是由節點與(yu) 節點之間的關(guan) 係組成的有限集合;「圖」是由頂點的非空有限集合與(yu) 邊的集合構成的結構。
五、「枚舉(ju) 算法」也稱為(wei) 窮舉(ju) 算法,是按照問題本身的性質一一列舉(ju) 出該問題所有可能的解;「遞歸」指的是一種通過重複將原問題分解為(wei) 同類的子問題而解決(jue) 的方法;「分治」就是把一個(ge) 複雜的問題分成兩(liang) 個(ge) 或更多的相同或相似的子問題,直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合並;「回溯」是一種選優(you) 搜索方法,按選優(you) 條件進行深度優(you) 先搜索,以達到目標;「貪心」是一種在每次決(jue) 策時采用當前狀態下最優(you) 或最好的策略,從(cong) 而希望導致結果是最好或最優(you) 的算法;「位運算」是針對二進製的運算,對每一個(ge) 位進行布爾運算操作;「動態規劃」與(yu) 分治法相似,都是通過組合子問題的解來求解原問題答案,將問題劃分為(wei) 互不相交的子問題,遞歸的求解子問題,最後合並子問題的答案。
1. 數據結構
數據結構分為(wei) 邏輯結構和物理結構。邏輯結構分為(wei) 集合結構、線性結構、樹形結構、圖形結構;
物理結構分為(wei) 順序存儲(chu) 結構、鏈式存儲(chu) 結構。
1.1 數組
「數組」 是實現線性表的順序結構存儲(chu) 的基礎。
1.2 鏈表
「鏈表」 是實現線性表的鏈式存儲(chu) 結構的基礎。
1.3 棧
「棧」是一種後進先出的線性表。
1.4 隊列
「隊列」是一種先進先出的線性表。
1.5 哈希表
「哈希表」是根據關(guan) 鍵碼值直接進行訪問的數據結構。
1.6 字符串
「字符串」是由零個(ge) 或多個(ge) 字符組成的有限序列。
1.7 樹
「樹」是由節點與(yu) 節點之間的關(guan) 係組成的有限集合。
1.8 圖
「圖」是由頂點的非空有限集合與(yu) 邊的集合構成的結構。
2. 算法
算法是一係列運算步驟。算法有5個(ge) 基本特性,輸入、輸出、有窮性、確定性、可行性;算法最求5個(ge) 目標,正確性、可讀性、健壯性、運行時間少、內(nei) 存空間小。
1.1 枚舉算法
「枚舉(ju) 算法」也稱為(wei) 窮舉(ju) 算法,是按照問題本身的性質一一列舉(ju) 出該問題所有可能的解。
1.2 遞歸算法
「遞歸」指的是一種通過重複將原問題分解為(wei) 同類的子問題而解決(jue) 的方法。
1.3 分治算法
「分治」就是把一個(ge) 複雜的問題分成兩(liang) 個(ge) 或更多的相同或相似的子問題,直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合並。
1.4 回溯算法
「回溯」是一種選優(you) 搜索方法,按選優(you) 條件進行深度優(you) 先搜索,以達到目標。
1.5 貪心算法
「貪心」是一種在每次決(jue) 策時采用當前狀態下最優(you) 或最好的策略,從(cong) 而希望導致結果是最好或最優(you) 的算法。
1.6 位運算
「位運算」是針對二進製的運算,對每一個(ge) 位進行布爾運算操作。
1.7 動態規劃
「動態規劃」與(yu) 分治法相似,都是通過組合子問題的解來求解原問題答案,將問題劃分為(wei) 互不相交的子問題,遞歸的求解子問題,最後合並子問題的答案。