经典算法
经典算法是解决常见问题的一组稳定方法。学习经典算法的目的不是背模板,而是掌握问题拆解方式:如何建模、如何选择数据结构、如何分析复杂度。
学习重点
- 排序和查找;
- 递归和分治;
- 回溯和剪枝;
- 贪心;
- 动态规划;
- 图算法;
- 字符串匹配;
- 概率型数据结构。
推荐路线
练习方法
- 每个算法先手算一个小例子。
- 再写伪代码。
- 最后实现代码并分析复杂度。
- 做完题后整理“适用条件”和“容易错的边界”。
经典算法
经典算法是程序设计中反复出现的问题解决套路。它们通常可以迁移到很多场景,例如搜索、推荐、缓存、调度、路径规划、数据去重和性能优化。