4.2. 常用算法

4.2.1. 排序、查找算法

选择排序

冒泡排序

插入排序

快速排序

归并排序

希尔排序

TODO

堆排序

计数排序

桶排序

基数排序

按照个位、十位、百位、…依次来排。

二分查找

Java 中的排序工具

4.2.2. 布隆过滤器

常用于大数据的排重,比如email,url 等。 核心原理:将每条数据通过计算产生一个指纹(一个字节或多个字节,但一定比原始数据要少很多),其中每一位都是通过随机计算获得,在将指纹映射到一个大的按位存储的空间中。注意:会有一定的错误率。 优点:空间和时间效率都很高。 缺点:随着存入的元素数量增加,误算率随之增加。

4.2.3. 字符串比较

KMP 算法

KMP:Knuth-Morris-Pratt算法(简称KMP) 核心原理是利用一个“部分匹配表”,跳过已经匹配过的元素。

4.2.4. 深度优先、广度优先

4.2.5. 贪心算法

4.2.6. 回溯算法

4.2.7. 剪枝算法

4.2.8. 动态规划

4.2.9. 朴素贝叶斯

4.2.10. 推荐算法

4.2.11. 最小生成树算法

4.2.12. 最短路径算法