演算法與資料結構
介紹演算法與資料結構的基本概念。
Complexity系列文章
Complexity:Asymptotic Notation(漸進符號)
基本資料結構系列文章
Linked List
Linked List:Intro(簡介)
Linked List:新增資料、刪除資料、反轉
Stack
Stack:Intro(簡介)
Stack:以Array與Linked list實作
Stack:能夠在O(1)取得最小值的MinStack
Queue
Queue:Intro(簡介),並以Linked list實作
Queue:以Array實作Queue
Set
Sort系列文章
Comparison Sort
Comparison Sort:Insertion Sort(插入排序法)
Comparison Sort:Quick Sort(快速排序法)
Comparison Sort:Heap Sort(堆積排序法)
Comparison Sort:Merge Sort(合併排序法)
Tree系列文章
Binary Tree(二元樹)
Binary Tree:Intro(簡介)
Binary Tree:Traversal(尋訪)
Binary Tree:建立一棵Binary Tree
Binary Search Tree(二元搜尋樹)
Binary Search Tree:Intro(簡介)
Binary Search Tree:Search(搜尋資料)、Insert(新增資料)
Binary Search Tree:Sort(排序)、Delete(刪除資料)
Red Black Tree(紅黑樹)
Red Black Tree:Intro(簡介)
Red Black Tree:Rotation(旋轉)
Red Black Tree:Insert(新增資料)與Fixup(修正)
Red Black Tree:Delete(刪除資料)與Fixup(修正)
Hash Table系列文章
Hash Table:Intro(簡介)
Hash Table:Chaining
Hash Table:Open Addressing
Graph系列文章
Breadth-First Search與Depth-First Search
Graph:Breadth-First Search(BFS,廣度優先搜尋)
Graph:Depth-First Search(DFS,深度優先搜尋)
Graph:利用DFS和BFS尋找Connected Component
Graph:利用DFS尋找Strongly Connected Component(SCC)
Graph:利用DFS尋找DAG的Topological Sort(拓撲排序)
Minimum Spanning Tree(最小生成樹)
Minimum Spanning Tree:Intro(簡介)
Minimum Spanning Tree:Kruskal's Algorithm
Minimum Spanning Tree:Prim's Algorithm
Minimum Spanning Tree:Prim's Algorithm using Min-Priority Queue
Shortest Path
Shortest Path:Intro(簡介)
Single-Source Shortest Path:Bellman-Ford Algorithm
Single-Source Shortest Path:on DAG(directed acyclic graph)
Single-Source Shortest Path:Dijkstra's Algorithm
All-Pairs Shortest Path:Floyd-Warshall Algorithm
Flow Networks
Flow Networks:Maximum Flow & Ford-Fulkerson Algorithm