跳转至

CS 算法系统学习路线

📚 学习理念

为什么学算法? - 提升代码效率和问题解决能力 - 建立可迁移的算法分析、实现与限时解题能力 - 优化 AI/ML 项目的性能 - 培养计算思维

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


🏆 在线练习入口


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

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

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

  1. 复杂度分析( 2-3 天)
  2. 时间复杂度: O(1), O(n), O(log n), O(n²)等
  3. 空间复杂度
  4. 最好/最坏/平均情况分析
  5. 配套阅读:复杂度上限与性能预算

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

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

  11. 语言基础(持续)

  12. Python :列表、字典、集合的高效使用
  13. 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-04-03 适用版本:算法教程 v2026

⚠️ 核验说明(2026-04-03):本页已按算法总入口的用途重新复核。已重点收回“只面向大厂面试”的单一表述,改为兼顾基础学习、题型复盘、限时训练与工程应用;若涉及外部工具、平台题单或第三方资源,请以实际站点与当前环境为准。