目錄
二、資料型別和抽象資料型別(大綱未規定)
三、演算法和演算法分析
資料結構與演算法_師大完整教程目錄(更有python、go、pytorch、tensorflow、爬蟲、人工智慧教學等著你):
資料結構:按一定的邏輯結構組成的一批資料,使用某種儲存結構將這批資料儲存於計算機中,並在這些資料上定義了乙個運算集合
邏輯結構的種類:
集合線性結構
樹形結構
圖狀結構
資料的邏輯結構:資料和資料之間存在的邏輯關係
開始結點:結點沒有前驅結點
終端結點:結點沒有後繼結點
內部結點:既不是開始結點也不是終端結點
注:有時候,邏輯結構簡稱為資料結構
儲存結構的種類:
順序儲存
鏈式儲存
索引儲存
雜湊儲存
資料的儲存結構:資料在計算機中的儲存方式
順序儲存:邏輯上相鄰的結點物理位置也相鄰
鏈式儲存:邏輯上相鄰的結點物理位置不一定相鄰(可相鄰可不相鄰)
儲存密度 = 資料本身所佔儲存空間的大小 / 整個資料結構所佔儲存空間的大小
注:順序儲存密度 = 1;鏈式儲存密度 < 1
資料的運算:定義在資料的邏輯結構上,具體實現依賴於資料的儲存結構
資料的運算集合
插入刪除
檢索輸出
排序資料型別:反映了資料的取值範圍以及對這類資料可以施加的運算
資料型別的兩個方面:資料屬性 + 在資料上可以施加的運算集合
注:資料結構是資料存在的形式
抽象資料型別:資料型別的進一步抽象,基本資料型別的延伸和發展
抽象資料型別的描述:抽象資料型別的名稱 + 資料的集合 + 資料之間的關係和操作的集合
抽象資料型別的實現:依賴於程式語言實現
演算法:求解問題的方法和步驟(一系列有限的運算規則 or若干條指令組成的有窮序列)
演算法的特徵:
有窮性:演算法執行必須在有限步結束
確定性:演算法的每乙個步驟都必須是確定的、獨一無二的
輸入:演算法有0個或多個輸入
輸出:演算法一定有輸出結果
可行性:演算法中的運算必須是可以實現的
程式:用計算機語言表達的求解乙個問題的一系列指令的序列
演算法和程式的區別:演算法具有有窮性;程式不需要具有有窮性
演算法的時間複雜度:演算法執行過程中他的基本操作的執行次數
注:評價演算法的時間複雜度時,不考慮兩演算法執行次數之間的細小區別,而只關心演算法的本質區別
常見演算法的複雜度:1、\(log_2n\)、n、\(nlog_2n\)、\(n^2\)、\(n^3\)、\(2^n\)
演算法的最好情況:演算法計量值的最小值
演算法的最壞情況:演算法計量值的最大值
演算法的平均情況:演算法在所有可能情況下的計算量的加權平均值
演算法的空間複雜度:除了儲存資料本身以外的附加儲存空間
第1章 物件導向方法概論
第一部分 概述 第一章 物件導向方法概論 part1 oo源頭 名稱 年份 特點 功能分解法 20世紀70年代 根據功能 子功能設計資料結構和演算法 結構化方法 20世紀70年代 包括結構化需求分析 dfd 設計 程式設計和測試方法等 資訊建模方法 20世紀80年代末 強調對資料的組織,卻忽略系統的...
第1章 統計學習方法概論
學習 定義 如果乙個系統能夠通過執行某個過程改進他的效能,這就是學習。統計學習的物件 資料 目的 對資料進行 和分析 方法 監督學習 非監督學習 半監督學習 強化學習 統計學習的三要素 方法 模型 策略 演算法 輸入變數和輸出變數均為連續變數的 問題稱為回歸問題 輸出變數為有限個離散變數的 問題稱為...
演算法概論第8章習題
8.3 問題描述 stingy satis the following problem given a set of clauses each a disjunction of literals and an integerk,find a satisfying assignment in whic...