跳转至

CS算法系统学习路线

📚 学习理念

为什么学算法? - 提升代码效率和问题解决能力 - 通过技术面试(特别是大厂) - 优化AI/ML项目的性能 - 培养计算思维

学习原则 - ✅ 实用优先:先学最常用、性价比高的算法 - ✅ 代码实践:手写代码,不只是理解概念 - ✅ 循序渐进:从基础到高级,打好地基 - ✅ 反复练习:同一算法多次实现,加深理解 - ✅ 联系实际:结合AI/ML场景应用


🎯 学习路径(共4个阶段)

阶段一:基础准备(2-3周)

目标:掌握数据结构和复杂度分析

  1. 复杂度分析(2-3天)
  2. 时间复杂度:O(1), O(n), O(log n), O(n²)等
  3. 空间复杂度
  4. 最好/最坏/平均情况分析

  5. 基础数据结构(1-2周)

  6. 数组、链表
  7. 栈、队列
  8. 哈希表
  9. 树的基础概念

  10. 语言基础(持续)

  11. Python:列表、字典、集合的高效使用
  12. C++:STL容器(vector, map, set等)

练习重点:能快速选择合适的数据结构


阶段二:核心算法(4-6周)

目标:掌握最常用的算法思想

  1. 排序算法(1周)
  2. 快速排序(最重要)
  3. 归并排序
  4. 堆排序
  5. 应用场景理解

  6. 搜索算法(1-2周)

  7. 二分搜索(必须掌握)
  8. 深度优先搜索(DFS)
  9. 广度优先搜索(BFS)

  10. 动态规划(2-3周)

  11. 背包问题
  12. 最长公共子序列
  13. 爬楼梯问题
  14. 状态转移思想

练习重点:每类算法至少手写3遍


阶段三:进阶算法(4-6周)

目标:解决复杂问题的工具箱

  1. 图算法(2-3周)
  2. 图的表示方法
  3. 最短路径(Dijkstra)
  4. 最小生成树
  5. 拓扑排序

  6. 贪心算法(1周)

  7. 贪心思想
  8. 经典问题(活动选择、霍夫曼编码)

  9. 字符串算法(1-2周)

  10. KMP算法
  11. 正则表达式基础

练习重点:综合运用多种算法


阶段四:实战强化(持续)

目标:算法应用和面试准备

  1. LeetCode分类训练
  2. 按算法类型刷题
  3. 每周2-3道,重质量不重数量

  4. AI/ML中的算法应用

  5. 数据预处理中的排序/搜索
  6. 图神经网络中的图算法
  7. 动态规划在序列标注中的应用

  8. 代码优化实践

  9. 分析现有代码的复杂度
  10. 用算法优化实际项目

📖 学习资源

推荐书籍

  1. 《算法(第4版)》 - Sedgewick
  2. 特点:Java实现,图解丰富,适合初学者

  3. 《算法导论》 - CLRS

  4. 特点:经典教材,理论深入,适合进阶

  5. 《剑指Offer》 - 何海涛

  6. 特点:面试导向,中文,实用性强

在线资源

  1. LeetCode中国https://leetcode.cn/
  2. VisuAlgo:算法可视化 https://visualgo.net/zh
  3. Github:awesome-algorithms仓库

视频课程

  1. Coursera:Algorithms (Princeton)
  2. B站:尚硅谷、左程云算法课

🛠️ 学习方法

每个算法的学习步骤

Text Only
1. 理解问题 → 2. 学习算法 → 3. 手写实现 → 4. 测试调试 → 5. 变式练习

使用AI工具的正确姿势

  • ❌ 不要:直接让AI写代码,复制粘贴
  • ✅ 应该:
  • 先自己尝试实现
  • 用AI解释你不理解的代码
  • 让AI给出变式题目
  • 用AI检查你的代码逻辑

练习建议

  • 每道题至少写3遍
  • 第1遍:看题解理解
  • 第2遍:自己实现
  • 第3遍:隔几天重新写

  • 建立代码模板库

  • 每类算法积累通用模板
  • 记录常见错误和陷阱

📊 学习进度跟踪

学习进度.md 中记录学习进度,包括: - 已学算法列表 - 刷题数量和类型 - 遇到的问题和解决方案


🎓 学习里程碑

  • 里程碑1:能用时间/空间复杂度分析代码
  • 里程碑2:能手写快速排序和二分搜索
  • 里程碑3:能用DFS/BFS解决树/图问题
  • 里程碑4:能用动态规划解决经典问题
  • 里程碑5:LeetCode刷题50+,中等题通过率70%+
  • 里程碑6:能优化自己AI项目的代码性能

🚀 开始学习

01-基础/ 开始你的算法之旅!记住:

"最好的学习方法就是实践。每天进步一点点,持续坚持。"

加油!💪


最后更新日期:2026-02-12 适用版本:算法教程 v2026