第一章 緒論
內容概要:
圖靈機及ram模型;演算法複雜度評估 (不是時間,而是計算操作的次數)。
漸進分析:大o (最壞),大θ;演算法分析。
封底估算及例項 (計算大概量級)
兩種演算法:迭代,遞迴演算法
兩種策略:減而治之,分而治之;結合例項,兩種典型的分析的方法:遞迴跟蹤和遞推式。
動態規劃:
fibonacci example, two implementation:recursive (o(2^n)) and iteration (o(n)).
lcs:待理解。
第二章 向量
向量即vector, 與list一起,構成了最基礎的順序資料結構。
adt v.s. data structure, difference?
從陣列到向量:向量是基於陣列結構實現的。
向量adt介面
向量支援的操作
擴容:size 滿載時double;動態記憶體管理的效率考慮(遞增式擴容 vs. 加倍式擴容)。
尋秩訪問:get(), put(), or 過載[ ]通過陣列實現;
單個插入:帶插入位置整體後移;區間插入:帶插入位置後整體位移一定長度。
查詢操作:對於有序向量,需支援判等操作;對於無序向量,需支援比較操作。=> 輸入敏感演算法。
單元素/區間刪除:單元素刪除是在呼叫區間刪除,而不是反過來;效率考慮。
唯一化:用到查詢和刪除;複雜度:o(n^2)。
遍歷:通過函式指標或者函式物件實現。
有序向量(很多操作將大大簡化):
fibonacci查詢(與二分查詢區別:如何切割/取劃分的中點),複雜度:1.44 logn.
起泡排序演算法的兩種版本:
歸併排序
資料結構學習筆記
資料結構概述 定義我們如何把現實中大量而複雜的問題以特定的資料型別和特定的儲存結構 儲存到主儲存器 記憶體 中,以及在此基礎上為實現某個功能 比如查詢摸個 元素,刪除某個元素,對所有元素進行排序 而執行的相應操作,這個相應 的操作也叫演算法 資料結構 個體 個體的關係 演算法 對儲存資料的操作 演算...
資料結構學習筆記
資料結構學習筆記 程式 資料結構 演算法 資料結構 資料 結構 結構的本質是關係 資料之間的關係從不通風層面上分為邏輯關係和物理關係 演算法的設計要依據資料的邏輯關係 演算法的實現要依據資料的物理關係 物理關係是邏輯關係的基礎和載體 演算法實現時需要先依據問題抽象出資料模型,即初步確定待處理資料的邏...
資料結構 學習筆記
一 鍊錶 1 基本特徵 記憶體節點是不連續的,節點之間通過指標彼此關聯。2 基本操作 追加 插入 刪除 遍歷 偽隨機訪問!3 實現要點 1 追加 新建節點存放資料,令新節點的前指標指向當前尾節點,新節點的後指標為null,令當前尾節點的後指標指向新節點,尾指標指向新節點。考慮在空煉表中追加第乙個節點...