先弄清值不值得学:它解决什么问题
很多写了几年代码的人,对 Python 的认识仍停留在调包和写脚本。真碰到处理海量日志、设计缓存淘汰策略或做底层接口性能调优时,才发现程序跑得慢却无从下手。这门课解决的核心场景,就是让你在写循环和调用函数前,先搞清楚不同数据组织方式在内存里的真实开销,以及它们对运行效率的底层影响。它不教你怎么写爬虫或搭网站,而是帮你把基础语法的泥地换成钢筋混凝土。对于需要手写基础逻辑、参与笔试算法考核,或准备向更底层研发岗转行的人来说,这块硬骨头绕不过去。
适合什么基础与学习顺序建议
这套资料要求你至少掌握 Python 基础语法,懂函数定义和面向对象的基本概念。纯零基础直接看,容易在抽象数据类型处卡壳。如果你已能独立写些几十行的处理脚本,刚好适合用它来规范底层思维。建议先看时间复杂度与内置结构分析这两块,搞懂大 O 表示法和列表字典的操作代价,这能立刻帮你规避日常写码的性能坑。接着按顺序表、链表、栈与队列、二叉树的脉络推进,最后啃排序和查找算法。遇到链表结点定义和内存替换等难点,别跳过,自己画图走一遍指针指向。
学完能独立做什么与资料配合方法
学完后,你应能独立用 Python 从零实现单链表等结构,而非只会调内置函数。在处理实际业务时,能根据数据规模和读写频率,自主判断该用列表还是自定义结构,并写出时间复杂度合格的查找与排序逻辑。资料配合上,切忌只看视频。每听完一种结构的原理,立刻打开编辑器盲写代码,跑通后与资料中的示例对照。尤其是时间复杂度测量部分,必须自己写多段测试用例,用计时模块去验证不同操作的真实耗时差异。只有把结构定义和算法逻辑亲手敲过并压测,这门课的知识才会真正长进你的工程直觉里。
本课程主要讲解顺序表、链表、队列、栈、二叉树等常用数据结构和排序、查找等常用计算机基本算法。
课程目录
* 第一章 数据结构和算法V1.0/
* 时间复杂度/
* 01_算法引入
* 02_时间复杂度与大O表示法
* 03_最坏时间复杂度与计算规则
* 04_常见时间复杂度与大小关系
* 05_代码执行时间测量模块timeit
* 06_Python列表类型不同操作的时间效率
* 07_Python列表与字典操作的时间复杂度
* 顺序表/
* 08_数据结构引入
* 09_内存、类型本质、连续存储
* 10_基本顺序表与元素外围顺序表
* 11_顺序表的一体式结构与分离式结构
* 12_顺序表数据区替换与扩充
* 13_顺序表添加与删除元素_Python列表的实现
* 单链表/
* 14_链表的提出
* 15_单链表的ADT模型
* 16_Python中变量标识的本质
* 17_单链表及结点的定义代码
* 18_单链表的判空、长度、遍历与尾部添加结点的代码实现
* 01_单链表尾部添加和在指定位置添加
* 02_单链表查找和删除元素
* 03_单链表与顺序表的对比
* 双向链表和单向链表/
* 04_双向链表及添加元素
* 05_双向链表删除元素
* 06_单向循环链表遍历和求长度
* 07_单向循环链表添加元素
* 08_单向循环链表删除元素
* 09_单向循环链表删除元素复习及链表扩展
* 栈和队列/
* 10_栈与队列的概念
* 11_栈的实现
* 12_队列与双端队列的实现
* 冒泡排序和插入排序/
* 13_排序算法的稳定性
* 14_冒泡排序算及实现
* 15_选择排序算法及实现
* 16_插入算法
* 01_插入排序1
* 02_插入排序2
* 希尔排序和快速排序/
* 03_希尔排序
* 04_希尔排序实现
* 05_快速排序
* 06_快速排序实现1
* 07_快速排序实现2
* 归并排序和二分查找/
* 08_归并排序
* 09_归并排序_代码执行流程
* 10_归并排序时间复杂度及排序算法复杂度对比
* 11_二分查找
* 12_二分查找时间复杂度
* 树和二叉树/
* 13_树的概念
* 14_二叉树的概念
* 15_二叉树的广度优先遍历
* 16_二叉树的实现
* 17_二叉树的先序、中序、后序遍历
* 18_二叉树由遍历确定一棵树






