這兩天開始準備考研了,才回到 演算法與資料結構,班裡就我乙個人選這門了,其他都選 自然地理.要做**,如果不選 演算法與資料結構,就沒有意義了.一段時間以來,都把 演算法和資料結構看得很重要了.所以這次要全力,定心,好好理解.
一,從問題到程式
1,需求模型
2,數學模型
3,實現模型
程式中描述的過程(演算法)
求解程式的階段:
1)分析階段(需求/數學模型).
2)設計階段(實現模型).
3)編碼階段
4)除錯和維護
不同抽象資料型別的主要特徵由它們具有的行為決定.
"資料元素"是資料的 基本 單位,
"資料項"是不可分割的 最小 單位,是構成資料元素的最小單位.
二,抽象資料型別
1,型別:一組值(物件)的集合.
2,資料型別:計算機中使用的一型別,既包括該型別值的集合,也包括定義在該型別上的一組操作.如,整數作為乙個資料型別,指的是在計算機中表示的所有整數及其語言中定義的對於這些整數的全部操作.
抽象資料型別的定義僅取決於它的一組 邏輯特性,與 計算機內部如何表示和實現 無關;只要它的 數學特性 不變,就不影響外部使用.
三,資料結構
1,資料結構,是計算機中表示的具有一定邏輯關係的一組資料.亦可理解為,'抽象資料型別的物理實現',所謂'物理實現',主要意圖是強調本課程關心的,'實現'應具體到可以用計算機的兩個重要的物理量(即主機的執行時間和記憶體的儲存空間).
2,邏輯結構:基本元素和元素之間的關係(資料的組織形式,即資料元素之間邏輯關係的總體,而邏輯關係是指資料元素之間的關聯方式或"鄰接方式").
3,儲存結構:結點的表示和關係的表示.
集合中的元素是各不相同且無序的(邏輯結構).用順序表,單鏈表,雜湊表等多種不同的集合表示法(儲存結構).
一種邏輯結構往往存在多種儲存結構.
資料結構研討資料的 邏輯結構 和 物理結構.
資料結構的基本操作的設定的最重要的準則是,實現應用程式與儲存結構的獨立.
四,資料結構的分類
1)按邏輯分類:
b=,k:有窮集合.r:k上的乙個關係.'關係'為二元組的集合.k上的二元組是k中元素的有序對.若 k,k'
r,則k為k'的前驅,k'為k的後繼.
開始結點:沒有前驅的結點
終端結點:沒有後繼的結點
a,線性結構:k中每個結點最多只有乙個前驅和乙個後繼的結構.
b,樹形結構:一般而言,開始結點和最終結點可不唯一.
集合,可看成r為空的情況,即結點之間沒有任何關係.
各種路基結構的包含關係:集合結構
線性結構
樹形結構
複雜結構.
2)按儲存結構分類:
解決邏輯結構在計算機中的儲存或表示,包括結點的表示和關係的表示
a,順序表示
b,鏈結表示
c,雜湊表示,'關鍵碼-位址'轉換法,根據關鍵碼的值,將結點對映到給定的儲存空間(通過函式).
d,索引表示,通過建立輔助索引結構解決.索引由索引項組成.索引項包含乙個結點的關鍵碼和該節點的儲存位置.
結點:資料結構中的基本單位.
五,外存資料組織
通常,將外存上的資料以某種方式組織成檔案,通過檔案系統完成對它們的管理.
檔案是邏輯記錄的集合.邏輯記錄是應用程式要進行內,外存交換的邏輯單元.每個記錄可包含若干資料項.
與記憶體不同,對外存的資料項按頁塊訪問.
六,外存訪問.
讀取外存資料時,先通過主機與外存的介面,將外存上物理記錄讀到緩衝區,然後找出需要的邏輯記錄進行處理.寫的過程相反.
通常,用"指標"來指向外儲存器上的邏輯記錄.該指標也就是邏輯記錄的外存位址.常由兩部分聯合組成:1)邏輯記錄所有的物理記錄的位址.2)邏輯記錄在物理記錄的相對位置.即從物理記錄首部到邏輯記錄首部之間的位移量.
節省外存訪問時間,關鍵在於減少訪問次數.由於緩衝區大小受限,所以應精心設計檔案的結構,外存中的記錄應相互關聯,以便於處理.如,當檔案中包含大量記錄時,為提高檢索速度,可參考雜湊或索引表示法.
七,檔案的分類
1,順序檔案,運用於磁帶儲存器.讀寫乙個頁塊後,接著讀寫後面的頁塊,無需忽前忽後地找頁塊,定位時間少.
2,雜湊檔案.
3,索引檔案.
4,倒排檔案:有時不僅按關鍵碼值查詢,也需要按記錄中某些資料項值查詢.為提高屬性值查詢速度,將這些屬性值建立索引.索引中每乙個索引項包括乙個屬性值和具有該屬性值的所有記錄的位址.
八,排序
在排序過程中,其他操作話費的時間都遠遠小於比較運算.
九,時間複雜度
log2n < n < n*log2n
十,外存
由於每次訪問外存可能花費很多時間來定位,因此,為了減少訪外的次數,在內,外存交換時,採用緩衝區和分塊訪問技術.
資料結構複習筆記 (緒論)
資料結構 相互之間存在一種或多種特定關係的資料元素的集合。邏輯結構 描述資料元素之間的邏輯關係 儲存結構 資料元素及其邏輯關係在計算機中的表示 映像 也稱為物理結構 運算集合 實現對資料元素及其邏輯關係的基本操作 如插入 刪除 輸出等 演算法 是規則的有限集合,是求解特定問題的過程描述 操作步驟或指...
c 基礎複習 緒論
計算機程式語言的發展,什麼是計算機程式語言?計算機程式語言是計算機可以識別的語言,用於描述解決問題的方法,供計算機閱讀和執行。計算機程式語言的發展從機器語言 只能有計算機郵件系統可以識別的二進位制組成的語言 到組合語言 將機器語言對映為一些可以被人讀懂的助記符,在這個時候本人並沒有系統的學習到組合語...
演算法複習筆記 BST
二叉樹是一種能夠將鍊錶插入的靈活性和有序陣列查詢的高效性結合起來的資料結構實現,這個資料結構主要是由一些節點構成。節點包含的鏈結可以為null或者指向其他節點,在二叉樹中,每個節點最多只能有乙個父節點,而且每個節點都有左右兩個子節點,如果把節點指向的位置看成另一顆二叉樹,則乙個根節點指向的就是它的左...