資料結構與演算法筆記 基本概念篇

2021-10-25 07:24:46 字數 2311 閱讀 2638

總結資料結構的基礎概念部分

將具體問題抽象建立數學模型

設計解出此數學模型的演算法

程式設計與測試調整

邏輯結構:線性結構與非線性結構(集合樹形與圖狀)。

物理(儲存)結構:順序儲存、鏈式儲存、索引儲存與雜湊儲存(索引對應b樹和b+樹索引,也是資料庫中索引的記憶體結構,雜湊對應雜湊表結構)。

資料運算:插入、修改、刪除、查詢與排序。

資料結構:將實際問題資訊化儲存到計算機中,並實現對於資料結構的基本操作。

演算法:如何處理這些資訊,以解決實際的問題。

模擬人,湖北人,湖北人的體重與武漢人(具備相同特徵的資料元素的集合)

集合、線性、樹形與圖狀

資料的物理結構是資料結構在計算機中的表示,包括資料元素的表示和關係的表示。目的將資料的邏輯結構在計算機表示實現。

計算機中表示資訊的最小單位(即是二進位制數中的一位)

(1)資料元素與位的關係:

資料元素是由若干位組成的乙個位串在計算機中表示的,資料元素又稱節點或元素。

(2)資料域定義:

資料域 是當資料元素由若干資料項組成時,位串中表示各資料項的子位串。

由(1)(2)可知,元素或節點可以看成資料元素在計算機的映像。

資料元素之間的關係是在計算機中有兩種表示方法:順序映像與非順序映像。因此,得到兩種物理儲存結構:順序儲存與鏈式儲存。此外,還有索引儲存與雜湊儲存。

資料型別是乙個值的集合與定義在該值上的一組的操作的總稱。

抽象資料型別是由使用者自定義表示應用問題的資料模型。它由基本資料型別構成,幷包含一組相關操作。比如c++的抽象類。

抽象資料型別三元組包含資料物件、資料關係與基本操作。抽象資料型別的定義是從資料的邏輯結構和資料運算方面來考慮,並未確定物理儲存結構。

有窮性、確定性、可行性、輸入、輸出

正確性:符合語法,能編譯鏈結

可讀性:新增注釋,變數命名規範,程式結構化(縮排有序,邏輯清晰,不要重複闡明語句執行含義,而應抓住主要)

健壯性: 需要考慮程式異常的處理,包括輸入輸出io異常,臨界條件未考慮等,而不至於程式非正常退出

高效率和低儲存:需要採用事先估算分析度量演算法的時間和空間複雜度

複雜度分為時間複雜度與額外空間複雜度,穩定性是指在排序演算法前後相同資料元素的相對順序不變。

常數操作:是指乙個與資料量無關,每次需要固定時間來執行完成的操作

f(n):在演算法常數運算元量的表示式中,不要低階項,只取最高端項且不要其係數的剩餘部分

時間複雜度:在乙個演算法流程中,常數運算元量的指標,用o(讀作big o)來表示,o(f(n))即為乙個演算法的時間複雜度。

時間複雜度按數量級指標遞增的順序為

常數階、對數階、線性階、線性對數階、平方階、立方階、k次階、指數階、階乘階。

平均時間複雜度為演算法每種情況發生的數學期望。

最好時間複雜度為該演算法在不同樣本資料中執行的最小的時間複雜度

最壞時間複雜度為該演算法在不同樣本資料中執行的最大的時間複雜度

如何從時間複雜度角度衡量乙個演算法的好壞?

1.先看常數運算元量的指標,即演算法的時間複雜度

2.再分析不同樣本資料下的實際執行時間,即常數項時間

遞迴函式的複雜度分析:需要借助master公式計算

額外空間複雜度則是指執行該演算法過程中所需要開闢的空間數量指標。

學會分析乙個演算法時間複雜度和額外空間複雜度是學習演算法的基本。另外有時還可以借助題目限定的資料範圍來輔助分析題目應該採用什麼時間複雜度的演算法,進而找到對應思路。刷題亦是不斷找尋最優解的過程。

資料結構與演算法 基本概念筆記

什麼是資料結構?解決問題方法的效率,跟 資料的組織方式 有關 跟 空間的利用效率 有關 跟 演算法的巧妙程度 有關。什麼是演算法?什麼是好的演算法?求最大子列和?給定n個整數的序列 a1 a2 an 求函式f i j ma x j a k f i,j max 的最大值。演算法1 int maxsub...

資料結構與演算法基本概念

一 基本資料結構 基本資料結構的定義 特性 運算 演算法。基本資料結構的分類 邏輯結構 1 線性結構 線性表 棧 佇列 雙佇列 陣列 廣義表 串 2 非線性結構 樹 二叉樹 圖 網 儲存結構 1 順序儲存 向量 一維陣列 2 鏈式儲存 鍊錶 二 演算法 查詢 順序 折半 分塊 雜湊 二叉排序樹 排序...

資料結構與演算法 基本概念

課前導入 如何在書架上擺放圖書,擺放圖書有兩個相關操作。操作1 新書如何插入書架 操作2 如何找到需要的書 方法1 隨便放 一本本挨著放 操作1 直接放在最後面 操作2 一本本的找 方法2 按照書名的首字母排序 操作1 根據新書的首字母 二分查詢該插入的位置 移出空位 操作2 使用二分查詢 方法3 ...