# 算法模板(Java版)
> 本项目内容主要参考[算法模板](https://github.com/greyireland/algorithm-pattern),在此感谢原作者的整理与贡献
在原项目的基础上,尽量保持了原有的结构划分,并做了一点微小的工作:
- 代码改写为`java`语言版本
- 调整内容,新增了几种算法
- 补充部分[leetcode中国站](https://leetcode-cn.com/)的题目链接
- 书籍链接:[GitBook](https://chienmy.gitbook.io/algorithm-pattern-java/)
## 核心内容
### 数据结构
- [链表](./data_structure/linked_list.md)
- [栈和队列](./data_structure/stack_queue.md)
- [二叉树](./data_structure/binary_tree.md)
### 基础算法
- [滑动窗口](./basic_algorithm/slide_window.md)
- [回溯算法](./basic_algorithm/backtrack.md)
- [二分搜索](./basic_algorithm/binary_search.md)
- [排序算法](./basic_algorithm/sort.md)
- [动态规划](./basic_algorithm/dp.md)
- [并查集](./basic_algorithm/disjoin_set.md)
### 进阶算法
> 此处整理了一些特殊情况下适用的算法
- [贪心算法](./advanced_algorithm/greedy.md)
- [快速选择](./advanced_algorithm/quick_select.md)
- [三向切分快速排序](./advanced_algorithm/three_way_quick_sort.md)
- [二进制运算](./advanced_algorithm/binary_op.md)
## 刷题建议
1. 巩固基础:先从数据结构的基础题做起,掌握常见数据结构以及对应操作的实现
2. 算法专题:推荐按类型刷题,在几天之内做完同一种类型的题目,可以迅速理解
3. 查漏补缺:对于某些不常见的特殊解法,在最后快速刷掉,务必留下印象
> ### 欢迎 star 本项目
>
> Github地址:https://github.com/chienmy/algorithm-pattern-java
>
> 本项目采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。