# 跟 Alex 学 Python ——算法来了!导读

一、为什么学算法?

很多同学在初学 Python 时,代码写得出来,但一问"这段程序为什么这么慢",就答不上来。算法,正是解答这个问题的核心钥匙。它不是高不可攀的数学,而是程序员思考"如何更高效地解决问题"的方式。掌握了算法,你的代码就从"能跑"升级为"跑得快、跑得稳"。

二、学习顺序与门槛

本节体系课围绕**排序算法**和**树结构**两大主线展开,内容由浅入深,层层递进。课程适合已经掌握 Python 基础语法(变量、循环、函数、列表)的同学。如果你刚刚入门,建议先补完基础语法课再来看本节,否则在理解递归和复杂度时会有一定压力。

学习路径如下:
- **第一阶段(视频 1–3)**:先建立对算法的整体认知,再引入"时间复杂度"这一衡量程序效率的核心工具。这是后续所有排序学习的共同语言,务必花时间理解大 O 记号的含义。
- **第二阶段(视频 4–7)**:进入三种基础排序。从最直观的冒泡排序开始,逐步过渡到选择排序和插入排序,并了解插入排序的优化思路。这一阶段重在体会不同排序策略的设计思想。
- **第三阶段(视频 8–10)**:攻克快速排序。分治思想是算法中最优美的设计模式之一,本节用三课时反复拆解,是面试和实战中最常被问到的内容,需要反复消化。
- **第四阶段(视频 11–13)**:进入树结构与堆排序。先理解二叉树的节点关系,再掌握三种遍历方式,最后引出堆这种特殊结构及其在排序中的应用。

三、学完能做什么?

完成本节课程后,你将能够:
- 手写七种经典排序算法,并根据场景选择合适的算法;
- 用大 O 记号分析算法的时间与空间复杂度,判断一段代码的效率瓶颈;
- 理解递归在树遍历中的自然表达,建立递归思维;
- 建立"选择合适算法 = 写出高效代码"的工程思维方式,为后续学习数据结构和更高级的算法打下坚实基础。

四、学习建议

算法学习切忌"一看就会,一写就废"。每讲一个算法,请动手在编辑器里自己敲一遍,逐步调试并观察数据变化,不要只依赖视频演示。建议每节课配套完成一道对应算法的练习题,在反复实践中才能真正内化。资料包中的课件和示例代码可作为参考,但请务必先自己动手实现,再对照代码查漏补缺。

课程目录

课程目录13 集
  • 1 本节鸡汤 (14:03).mp4
  • 2 算法概要 (13:19).mp4
  • 3 时间复杂度 (46:57).mp4
  • 4 冒泡排序 (32:46).mp4
  • 5 选择排序 (11:06).mp4
  • 6 选择排序优化版 (10:45).mp4
  • 7 插入排序 (53:14).mp4
  • 8 快速排序 (52:47).mp4
  • 9 快速排序2 (41:01).mp4
  • 10 快速排序3 (10:22).mp4
  • 11 二叉树 (28:40).mp4
  • 12 二叉树遍历 (36:38).mp4
  • 13 堆排序介绍 (57:42).mp4