A Collection of Swift Algorithms
演算法 - 以Swift語言實作
搜羅一些常見的演算法與資料結構,並以Swift程式語言加以實作。
Table of Contents 目錄
目錄:
入門主題:
- Stack 堆疊
- Queue 佇列
- Insertion Sort 插入排序法
- Binary Search and Binary Search Tree 二元搜尋與二元搜尋樹
- Merge Sort 合併排序法
- Boyer-Moore string search Boyer-Moore字串搜尋法
(一)演算法:
A. 搜尋類演算法:
- Linear Search 線性搜尋法
- Binary Search 二元搜尋法
- Count Occurrences 計數法
- Select Minimum / Maximum 最大最小值搜尋
- k-th Largest Element 查找第k大的值
- Selection Sampling 亂數取樣
- Union-Find 聯合搜尋法
B. 字串搜尋演算法:
- Brute-Force String Search 字串暴力搜尋法
- Boyer-Moore. Boyer-Moore字串搜尋法
- Longest Common Subsequence 最長共同子序列演算法
C. 排序演算法
- Insertion Sort 插入排序法
- Selection Sort 選擇排序法
- Shell Sort 希爾排序法
- Quicksort 快速排序法
- Merge Sort 合併排序法
- Heap Sort 堆積排序法
- Bucket Sort 桶子排序法
- Counting Sort 計數排序法
- Radix Sort 基數排序法
- Topological Sort 拓撲排序法
- Bubble Sort 氣泡排序法
D. 資料壓縮
- Run-Length Encoding (RLE) 遊程編碼
- Huffman Coding 霍夫曼編碼
E. 雜項
- Shuffle 洗牌法
F. 數學
- Greatest Common Divisor (GCD) 最大公因數
- Permutations and Combinations 排列組合
- Shunting Yard Algorithm 調度場演算法.
- Statistics 統計
G. 機器學習
- k-Means Clustering k-平均演算法
- k-Nearest Neighbors 最近鄰居法
- Linear Regression 線性回歸
- Logistic Regression 羅輯回歸
- Neural Networks 神經網路
- PageRank 佩奇排序演算法/網頁排名
(二)資料結構
陣列(Array)型資料結構
- Array2D 二維陣列
- Bit Set 二元組
- Fixed Size Array 定容陣列
- Ordered Array 排序陣列
佇列(Queue)型資料結構
- Stack 堆疊
- Queue 佇列
- Deque 双端佇列
- Priority Queue 優先佇列
- Bounded Priority Queue 有界優先佇列
- Ring Buffer 環形緩衝區
串列(Lists)
- Linked List 鏈結串列
- Skip List 跳躍列表
樹(Trees)
- Tree 樹
- Binary Tree 二元樹
- Binary Search Tree (BST) 二元搜尋樹
- AVL Tree 高度平衡樹
- Red-Black Tree 紅黑樹
- Splay Tree 參展數
- Threaded Binary Tree 線索二元樹
- Segment Tree 線段樹
- Bottom-up Segment Tree 由下至上線段樹
- kd-Tree k-d樹
- Heap 堆積
- Fibonacci Heap 斐波那契堆
- Trie 前綴樹/櫥
- B-Tree B樹
雜湊法(Hashing)
- Hash Table 雜湊表
- Hash Functions 雜湊函式
Sets 集合
- Bloom Filter. 布隆過濾器
- Hash Set. 雜湊集合
- Multiset 多重集
- Ordered Set. 有序集合
Graphs 圖論
- Graph 圖
- Breadth-First Search (BFS) 廣度優先搜尋法
- Depth-First Search (DFS) 深度優先搜尋法
- Shortest Path 最短路徑搜尋法
- Minimum Spanning Tree 最小生成樹
- All Paths 所有路徑搜尋法
(三)解謎
- Two-Sum Problem 子集和問題
- Fizz Buzz Fizz buzz團體遊戲
- Monty Hall Problem 蒙提霍爾問題