# Algorithm
**Repository Path**: sikaozhifu/Algorithm
## Basic Information
- **Project Name**: Algorithm
- **Description**: :pencil2: Useful Algorithm Implementation
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-04-15
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Algorithm
## About
基于《算法 第四版》和《数据结构与算法分析 Java 语言描述》进行实现,包含 JUnit 测试代码。
## Document
[算法](https://github.com/CyC2018/Interview-Notebook/blob/master/notes/%E7%AE%97%E6%B3%95.md)
## Catalogue
```
| Caching
| ---- LRU // LRU 缓存淘汰算法
| Graph
| ---- KruskalMST // Kruskal 最小生成树
| ---- PrimMST // Prim 最小生成树
| MultiThreading
| ---- AlternatePrint // 多线程交替打印
| Other
| ---- Hanoi // 汉诺塔
| ---- Huffman // 哈夫曼编码
| Queue // 队列
| Searching
| ---- OrderedST
| -------- BinarySearchOrderedST // 二分查找实现的有序符号表
| -------- BST // 二叉查找树
| -------- RedBlackBST // 红黑二叉查找树
| ---- Other
| -------- SparseVector // 稀疏矩阵
| -------- Transaction // 交易类,用于演示散列函数的实现
| ---- UnorderedST
| -------- LinearProbingHashST // 线性探测法实现的哈希表
| -------- ListUnorderedST // 链表实现的无序符号表
| Sorting
| ---- Bubble // 冒泡排序
| ---- DownUpMergeSort // 自底向上归并排序
| ---- Heap // 堆
| ---- HeapSort // 堆排序
| ---- Insertion // 插入排序
| ---- QuickSort // 快速排序
| ---- Selection // 选择排序
| ---- Shell // 希尔排序
| ---- ThreeWayQuickSort // 三路归并快速排序
| ---- Up2DownMergeSort // 自顶向上归并排序
| Stack
| ---- ArrayStack // 数组实现可动态扩容的栈
| ---- ListStack // 链表实现的栈
| ThreeSum
| ---- BinarySearch // 二分查找
| ---- RatioTest // 倍率实验
| ---- StopWatch // 计时器
| ---- ThreeSumBinarySearch // 改进的 ThreeSum
| ---- ThreeSumSlow // 未改进的 ThreeSum
| Union-Find
| ---- QuickFindUF // 快速查找并查集
| ---- QuickUnionUF // 快速合并并查集
| ---- WeightedQuickUnionUF // 加权快速合并并查集
```