如果你的目标是进入 AI时代的算法工程师,那么学习路线已经和几年前完全不同了。
以前是:
数学 → 数据结构 → 算法 → LeetCode → 机器学习 → 深度学习
现在(2026 年)更推荐:
Python → 编程基础 → 数据结构与算法 → 数学基础 → AI算法 → 大模型 → Agent → 项目实战
第一阶段:算法学习入门(0-2个月)
第一章 什么是算法?
算法(Algorithm)就是:
解决一个问题的步骤。
例如:
问题一
如何找到最大的数字?
3 5 8 2 1
算法:
max=3
比较5
max=5
比较8
max=8
比较2
不变
比较1
不变
输出8
这就是一个算法。
问题二
如何找到一本书?
假设有100万本书。
方法一:
一本一本找
最坏:
100万次
方法二:
先按编号排序
中间开始找
大了往左
小了往右
可能:
20次左右
这就是不同算法带来的巨大差距。
第二章 为什么要学算法?
很多人认为:
AI时代不用写算法了。
其实恰恰相反。
以后真正值钱的是:
不是会调用AI
而是知道:
AI为什么这么做?
如何优化?
如何设计?
例如:
AI生成代码慢。
原因可能是:
你的Prompt不好
或者
你的算法复杂度太高
因此:
算法仍然是程序员最重要的底层能力。
第三章 时间复杂度(★★★★★)
这是算法第一课。
也是面试第一问。
例如:
for i in range(n):
print(i)
执行次数:
n
所以:
O(n)
如果:
for i in range(n):
for j in range(n):
print(i,j)
次数:
n × n
就是:
O(n²)
如果:
二分查找:
100万数据
每次减半
1000000
500000
250000
125000
...
只需要:
20次
复杂度:
O(log n)
常见复杂度排行
从快到慢:
O(1)
↓
O(log n)
↓
O(n)
↓
O(n log n)
↓
O(n²)
↓
O(n³)
↓
O(2ⁿ)
↓
O(n!)
一定要背。
以后天天看见。
第四章 空间复杂度
不仅看时间。
还看:
需要多少内存。
例如:
nums=[1,2,3]
复制:
new_nums=nums.copy()
多占一份空间。
空间:
O(n)
如果:
直接交换:
a,b=b,a
空间:
O(1)
第五章 数据结构是什么?
一句话:
数据结构 = 数据怎么存。
算法:
解决问题。
数据结构:
保存数据。
二者永远一起学习。
常见数据结构
数组(Array)
[3,5,2,9]
特点:
-
查询快
-
插入慢
-
删除慢
应用:
Python List
链表(Linked List)
1
↓
2
↓
3
↓
4
特点:
-
插入快
-
删除快
-
查找慢
栈(Stack)
口诀:
后进先出(LIFO)
例如:
浏览器返回
撤销(Ctrl+Z)
函数调用
队列(Queue)
口诀:
先进先出(FIFO)
例如:
排队
打印机
消息队列
哈希表(Hash)
Python:
dict
特点:
查询极快。
例如:
phone={
"Tom":"123",
"Jack":"456"
}
找:
Tom
几乎:
O(1)
树(Tree)
例如:
A
/ \
B C
/
D
应用:
-
文件系统
-
DOM树
-
AI搜索
-
数据库索引
图(Graph)
例如:
北京 —— 上海
│
广州
应用:
-
导航
-
推荐系统
-
社交网络
-
知识图谱
第六章 排序算法
经典排序:
冒泡排序
选择排序
插入排序
快速排序
归并排序
堆排序
建议学习顺序:
冒泡
↓
选择
↓
插入
↓
快速
↓
归并
↓
堆
重点掌握:
-
为什么快?
-
时间复杂度是多少?
第七章 查找算法
主要掌握:
顺序查找
一个一个找
复杂度:
O(n)
二分查找
必须:
有序
复杂度:
O(log n)
第八章 递归
经典案例:
阶乘:
5!
=
5×4×3×2×1
递归:
def f(n):
if n==1:
return 1
return n*f(n-1)
递归重点:
结束条件
+
不断缩小问题
第九章 双指针
例如:
1 2 3 4 5
↑ ↑
左右一起移动。
应用:
-
删除元素
-
有序数组
-
回文判断
-
盛最多水容器
第十章 滑动窗口
例如:
abcdefg
窗口:
abc
↓
bcd
↓
cde
应用:
-
最长子串
-
最小覆盖子串
-
连续数组问题
第十一章 BFS 与 DFS
DFS(深度优先):
一直往下走
适合:
-
回溯
-
迷宫
-
树
BFS(广度优先):
一层一层找
适合:
-
最短路径
-
层序遍历
第十二章 动态规划(DP)
动态规划本质:
把大问题拆成小问题,并把已经计算过的结果保存起来,避免重复计算。
经典例子:
斐波那契数列:
1
1
2
3
5
8
13
应用:
-
爬楼梯
-
背包问题
-
最长公共子序列
-
编辑距离
第十三章 贪心算法
原则:
每一步都选择当前看起来最优的方案。
例如:
找零钱:
100
50
20
10
5
1
每次先拿最大面额。
应用:
-
区间调度
-
最小生成树
-
哈夫曼编码
第十四章 回溯算法
回溯 = 尝试 → 发现不行 → 撤销 → 换一种尝试。
适用于:
-
全排列
-
N 皇后
-
数独
-
组合问题
第十五章 LeetCode 刷题路线(建议)
按照下面顺序刷题,循序渐进:
-
数组(20 题)
-
字符串(20 题)
-
哈希表(20 题)
-
双指针(20 题)
-
栈与队列(20 题)
-
二叉树(30 题)
-
二分查找(20 题)
-
滑动窗口(20 题)
-
回溯(30 题)
-
动态规划(50+ 题)
-
图论(20 题)
总计约 250~300 题,比盲目刷上千题更高效。
推荐学习节奏(8 周)
| 周数 | 学习内容 | 实践目标 |
|---|---|---|
| 第1周 | Python 基础、算法概念、时间/空间复杂度 | 能分析简单代码复杂度 |
| 第2周 | 数组、链表、栈、队列、哈希表 | 实现基础数据结构操作 |
| 第3周 | 排序、二分查找 | 手写经典排序与二分查找 |
| 第4周 | 树、递归、DFS、BFS | 完成树遍历和简单搜索 |
| 第5周 | 双指针、滑动窗口 | 解决典型数组和字符串题 |
| 第6周 | 回溯算法 | 完成组合、排列、N 皇后基础题 |
| 第7周 | 动态规划 | 掌握爬楼梯、背包、最长子序列等经典问题 |
| 第8周 | 综合刷题与总结 | 完成约 50~80 道精选题,形成自己的算法模板 |
AI时代学习建议
如今,AI 可以帮助你写代码,但不能替代你建立算法思维。建议采用以下学习方式:
-
先自己分析题目,写出思路。
-
再让 AI 帮你优化时间复杂度和代码风格。
-
要求 AI 解释每一步为什么这样做,而不是直接复制答案。
-
建立自己的算法模板库(如二分查找、DFS、BFS、滑动窗口、动态规划等),以后无论是面试还是 AI 编程,都能快速复用。
这套基础打牢之后,再学习机器学习、深度学习、大模型和 AI Agent,会轻松得多,因为你已经具备了解决问题的核心能力——算法思维。
2240

被折叠的 条评论
为什么被折叠?



