算法导论
算法导论:让程序又对又快——查找、排序、递归、动态规划的内功心法。Python 基础学完后,这是拉开差距的一块拼图,全 6 章已上线。
章节规划
| 章节 | 内容 | 核心知识点 | 状态 |
|---|---|---|---|
| 1. 算法是什么 | 步骤与大 O 直觉 | 算法定义、时间复杂度 O(1)/O(n)/O(n²)、大 O 直觉 | ✅ 已上线 |
| 2. 查找 | 线性查找与二分查找 | in 运算符、二分查找逻辑、有序前提 |
✅ 已上线 |
| 3. 排序 | 冒泡排序与内置 sorted | 冒泡排序原理、sorted()、list.sort() |
✅ 已上线 |
| 4. 递归 | 自己调用自己 | 递归定义、递归终止条件、递归 vs 循环 | ✅ 已上线 |
| 5. 贪心与动态规划 | 贪心策略与 lru_cache |
贪心局部最优、递归+缓存、functools.lru_cache |
✅ 已上线 |
| 6. 综合练习 | 经典题三连 | 三道经典算法题,用所学全部解一遍 | ✅ 已上线 |
适合谁看
- 已学完 Python 基础,学过列表与字典更佳
- 想理解"代码怎么写才快",而不仅仅是"能跑"
- 为面试刷题、ACM 竞赛、或写高性能程序打基础
算法导论的核心思想
| 概念 | 一句话 | 为什么重要 |
|---|---|---|
| 时间复杂度 | 随数据增大,运行时间怎么增长 | 决定算法能否处理大数据量 |
| 二分查找 | 有序数据里"折半猜" | 从 O(n) 降到 O(log n),快得多 |
| 递归 | 函数自己调用自己 | 树形问题、分治问题的自然表达 |
| 动态规划 | 把大问题拆成小子问题,结果缓存 | 避免重复计算,让指数级算法变多项式级 |
记忆口诀
大 O 看增长,二分要有序,冒泡简单但慢,递归有出口,缓存防重算。
动手建议
- 每章代码都建议本地运行一遍,用
time模块测一下不同算法在同一数据上的耗时差异 - 完成《经典题三连》后,去 LeetCode / 力扣上找同类型题目练手
- 算法导论是"内功心法",不急于求快,理解原理比背代码更重要