---
# System prepended metadata

title: 用 Java 學習資料結構與演算法
tags: [資料結構, Java]

---

# 用 Java 學習資料結構與演算法

## 為什麼藥學資料結構與演算法？

都轉職成軟體工程師兩年左右了，在轉職班也沒有好好的學習電腦科學的基礎知識，這次就來好好地把資料結構與演算法讀起來吧！

已經寫過了一些專案，雖然對資料結構多少都有一些理解，也會在專案中依照需求選擇適合的資料結構，但沒有一個系統性的學習，寫起來還是心理需需的。

而演算法的部分則是真的沒有一點基礎，但演算法才是真的重點，依照不同的情境選擇不同的演算法，才能寫出高效率與高品質的程式。

## 資料結構列表

- [陣列 Array](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/HyQjYhN4C)
- [多維陣列 Multi-dimensional Array](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/HyQjYhN4C)
- [ 單向鏈結串列 Singly Linked List](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/B1KZYmd7yg)
- [TODO-雙向鏈結串列 Doubly Linked List](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/HkbpuiB4ye)
- [TODO-環狀鏈結串列 Circular Linked List](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/ByqfxMPV1x)
- [堆疊 Stack](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/SkFMZ2bSye)
- [堆 Heap](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/HkrfhB4BJe)
- [佇列 Queue](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/Syz8OOCSkl)
- [TODO樹 Tree](https://hackmd.io/@ohQEG7SsQoeXVwVP2-v06A/rJM-dC0rkl)
- [TODO-圖 Graph](TODO)
- [TODO-圖形表示法 Graph Representation](TODO)
- [TODO-雜湊 Hashing](TODO)
- [TODO-集合與映射 Set and Map](TODO)

## 演算法列表

- Web 仔好像不常用到演算法，所以我就先列著，有空再來學吧！

### 排列演算法

- [Option 氣泡排序法 Bubble Sort](TODO)
- [Option 選擇排序法 Selection Sort](TODO)
- [Suggest 插入排序法 Insertion Sort](TODO)
- [Option 謝爾排序法 Shell Sort](TODO)
- [Must 合併排序法 Merge Sort](TODO)
- [Must 快速排序法 Quick Sort](TODO)
- [Suggest 堆疊排序法 Heap Sort](TODO)

### 搜尋演算法

- [Option 循序搜尋 Sequential Search](TODO)
- [Must 二元搜尋 Binary Search](TODO)
- [Suggest 內插搜尋 Interpolation Search](TODO)
- [Option 費式搜尋 Fibonacci Search](TODO)

### 圖形演算法

- [Must 深度與廣度優先搜尋 Depth and Breadth First Search](TODO)
- [Must 戴克斯特拉演算法 Dijkstra's Algorithm](TODO)
- [Suggest 貝爾曼-福特演算法 Bellman-Ford Algorithm](TODO)
- [Suggest 弗洛伊德-沃爾沃斯演算法 Floyd-Warshall Algorithm](TODO)
- [Suggest 最小生成樹 Minimum Spanning Tree](TODO)
- [Suggest 普林演算法 Prim's Algorithm](TODO)

### 其他演算法

- [Must 動態規劃 Dynamic Programming](TODO)
- [Must 貪心演算法 Greedy Algorithm](TODO)
- [Suggest 回溯演算法 Backtracking](TODO)
- [Must 哈希表 Hash Table](TODO)
- [Suggest 平衡樹 Balanced Tree](TODO)
