Java資料結構與演算法

2021-09-02 04:50:55 字數 2492 閱讀 6838

1.1 概念

資料結構主要是研究程式設計問題中計算機的操作物件以及它們之間的關係和操作的學科。

1.2 分類
儲存結構 (存在於計算機世界的物理層面)

邏輯結構 (一種是資料結構的邏輯層面)

1.3 按照資料元素分類
線性 (存在於計算機世界的物理層面)

非線性 (一種是資料結構的邏輯層面)

1.4 集合結構
只考慮資料元素而不考慮它們之間的關係

1.5 線性結構
是資料元素之間是 1對 1 的聯絡,即線性關係

1.6 線性結構
資料元素之間是 1 對 n 的聯絡

1.7 圖結構
元素之間是 m 對 n 的聯絡

2.1 概念
為解決特定問題而規定的一系列操作。

2.2 五個特性
輸入,輸出,可行性,有窮性,正確性

2.3 時間複雜度
執行時間的上界

執行時間的下界

時間複雜度的精確階

2.4 空間複雜度
乙個演算法在執行過程中臨時占用儲存空間大小

3.1 定義
元素之間是有順序的,若元素存在多個,則第乙個元素無前驅,最後乙個元素無後繼,其他每個元素都只有乙個前驅和後繼。

3.2 順序儲存
用一組位址連續的儲存單元依次儲存線性表的資料元素。

3.3 順序儲存
鍊錶是一系列的儲存資料元素的單元通過指標串接起來形成的

鍊錶中每個結點的 next 引用都相當於乙個指標,指向另乙個結點,

借助這些 next 引用,我們可以從鍊錶的首結點移動到尾結點

3.4 雙向鍊錶
結點使用 pre 以及 next 域依次串聯在一起而形成的。

又稱堆疊,它是運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除操作,不允許在其他任何位置進行插入、查詢、刪除等操作

又稱堆疊,它是運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除操作,不允許在其他任何位置進行插入、查詢、刪除等操作

由兩部分組成:遞迴呼叫與遞迴終止條件,定義自身的同時又出現了對自身的引用

6.1 分治法
分治法的設計思想是,將乙個難以直接解決的大問題,分割成一些規模較小的相同問題,以便各個擊破,分而治之。

7.1 定義
樹是由乙個集合以及在該集合上定義的一種關係構成的。

7.2 二叉樹
1.概念 (每個結點的度均不超過 2 的有序樹)

2.滿二叉樹(每層結點都達到最大數)

3.完全二叉樹(除最後一層可能不滿以外,其他各層都達到該層節點的最大數,最後一層如果不滿,該層所有節點都全部靠左排)

4.遍歷 (按照某種次序訪問樹中的所有結點,且每個結點恰好 訪問一次。)

7.3樹,森林

7.3.1 儲存結構

1.雙親表示法

兒子的陣列下標值大於父親的陣列下標值,而指示兄弟結點的陣列下標值隨著兄弟的從左到右是遞增

2.孩子鍊錶表示法

只通過父類來表示之類的一層關係

3.孩子兄弟表示法

通過二叉鍊錶進行儲存

7.3.2 二叉編碼樹
選取兩個根節點權值最小的樹合併為一棵新樹,新樹的根節點大小為兩個子節點大小的和,並將這棵新樹重新加入到森林中

8.1 定義
圖是由結點和結點之間的連線構成

8.2無向圖
一種所有的邊都是不區分方向的圖

8.2有向圖
一種所有的邊都是有方向的圖。

9.1 順序查詢
用所給的關鍵字與線性表中各元素的關鍵字逐個進行比較,直到成

功或失敗。

9.2 折半查詢
首先,將查詢表中間位置資料元素的關鍵字與給定關鍵字比較,如果相等則查詢成功;否則利用中間元素將表一分為二,如果中間元素關鍵字大於給定關鍵字,則在前一子表中進行折半查詢,否則在後一子表中進行折半查詢

java資料結構與演算法(一)

資料結構是對計算機記憶體中 有時在磁碟中 的資料的一種安排。資料結構包括陣列 鍊錶 棧 二叉樹 雜湊表等等。演算法對這些結構中的資料進行各種處理,例如,查詢一條特殊額資料項或對資料進行排序。資料結構的特性 資料結構 優點 缺點 陣列 插入快,如果知道下標,可以非常快地訪問 查詢慢,刪除慢,大小固定 ...

java資料結構與演算法 佇列

一 建立佇列 該佇列底層是通過陣列實現的,可指定大小。是通過front與rear指標來實現元素的新增與刪除,每次新增與刪除不會真正的移動陣列元素的位置。created by xi on 2017 7 29.public class queue 插入元素,呼叫該介面之前需判斷佇列是否已滿。public...

Java資料結構與演算法 排序

直接插入排序是資料越有序越快,最快時間複雜度可達到o n 選擇排序無論何時都是o n 2 快速排序越有序越慢,它要從後到前遍歷找比基準小的,時間複雜度達到o n 堆排序需要不斷進行調整,時間複雜度為o nlog2 n 定理 通過交換相鄰元素進行排序的任何演算法平均都需要 n n 時間。作為交換相鄰元...