这门课的名字里有「零基础」三个字,但它真正要解决的,不是「没学过编程能不能看懂」,而是「写了半年代码,为什么一遇到稍复杂的题就卡住」。如果你正处在下面任何一种状态,这份材料值得你花时间:能写出能跑的代码,但不知道它为什么慢;刷题时看过答案就会、合上答案就废;数据库索引、HashMap 扩容、递归爆栈这些词听着耳熟,却说不清底层发生了什么。

先搞清楚:你的缺口到底在哪

算法与数据结构这门东西,最怕的不是难,而是「学过了」的错觉。数组、链表、栈、队列,翻任何一本教材前三章都是这些,很多人扫一眼就跳过,结果在后面做树的遍历、图的搜索时,写不出一个正确的递归出口。

所以这门课在基础部分并不着急往前赶。它把复杂度分析单独拎出来讲,就是想先把「怎么判断一段代码好不好」这个尺子交给你。没有这把尺子,后面所有的优化都是凭感觉。你要是有过「明明能跑通,但提交就超时」的经历,这一块就是你最该停下来补的地方。

配套练习不是附赠品,是主线

光看懂和能写出来之间,隔着一整个太平洋。材料里每一块知识点后面都配了对应练习,这一点比讲得多细更重要。看讲解视频的时候,人的大脑会产生一种「我懂了」的流畅感,但这只是识别,不是提取。真正把知识钉进去的,是你关掉视频、面对空白编辑器,从零把思路翻译成代码的过程。

建议的做法是:每看完一个数据结构,先别急着看下一节,自己动手把它实现一遍——不用追求最优写法,但要能跑、能插入、能删除、能遍历。写完再对着讲解复盘,你会发现自己漏掉的全是边界条件:空结构怎么处理、只剩一个节点怎么办、指针什么时候该置空。

看完应该能回答的几个问题

  • 为什么同样是查找,有序数组可以用二分,链表就不行?
  • 递归写出来的代码简洁,但什么情况下它会把栈撑爆,怎么改成迭代?
  • 哈希表增删改查都接近 O(1),那它是不是万能的?冲突严重时会退化成什么?
  • 排序算法那么多,面对一份几乎已经有序的数据,你会选哪个,为什么?
  • 树的三种遍历,前序、中序、后序分别适合解决什么类型的问题?

这些问题不需要背标准答案。如果你能在不看资料的情况下,用自己的话把其中的因果关系讲清楚,说明这一轮学习是真的到位了。

哪些内容可以快速过,哪些必须慢下来

线性结构部分,如果你写过一段时间的业务代码,数组和链表的基本操作可以快速扫过,把注意力放在复杂度对比上。真正需要慢下来的是树和递归这两块,它们是后面图、堆、动态规划的地基,糊弄过去后面会一直疼。排序部分不必死记每种算法的实现,但要清楚它们各自的时间空间代价和适用场景。

至于综合练习章节,别把它当成考前冲刺。它的作用是逼你把零散的知识点串成一条线——看到一个实际问题,能判断该用哪种结构、哪种思路去拆。这一步做通了,面试里的手写题和实际工作中的性能问题,用的其实是同一套判断力。

适合谁,不适合谁

如果你完全没写过代码,连变量和循环是什么都要现学,那先补一门编程语言的基础,再回来。这门课假设你至少能读懂一段几十行的普通代码,会把想法写成函数。

如果你已经有开发经验,只是想系统过一遍算法,可以跳过语言语法部分,重点看复杂度分析和树、图、排序这几块,用练习来检验自己是不是真的会写,而不是「好像会」。学完的标准很朴素:拿到一道没见过的题,你能先说出思路的复杂度,再动手把它实现出来。


- 编程初学者:对编程有一定兴趣但尚未深入学习算法和数据结构的爱好者。

课程推荐

《零基础快速掌握算法与数据结构完整版教程》- 编程初学者:对编程有一定兴趣但尚未深入学习算法和数据结构的爱好者。【技能收获】学完可掌握:算法、数据结构、编程练习。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。

视频目录(98 节)

*   1-1 01 算法入门概念.mp4

*   1-2 02 估计算法运行效率与时间复杂度.mp4

*   1-3 03 简单判断时间复杂度.mp4

*   1-4 04 空间复杂度.mp4

*   1-5 05 递归.mp4

*   1-6 06 汉诺塔问题.mp4

*   1-7 07 顺序查找.mp4

*   1-8 09二分查找介绍.mp4

*   1-9 10二分查找代码.mp4

*   1-10 11二分查找与线性查找的比较.mp4

*   2-1 12排序介绍.mp4

*   2-2 13冒泡排序介绍.mp4

*   2-3 14冒泡排序.mp4

*   2-4 15选择排序.mp4

*   2-5 16插入排序.mp4

*   2-6 17快速排序原理介绍.mp4

*   2-7 18快速排序代码实现.mp4

*   2-8 19快速排序代码实现2.mp4

*   2-9 20堆排序前传树的基础知识.mp4

*   2-10 21堆排序前传二叉树的基础知识.mp4

*   2-11 22堆排序前传堆和堆的向下调整.mp4

*   2-12 23堆排序的过程演示.mp4

*   2-13 24向下调整函数的实现.mp4

*   2-14 25堆排序的实现(1).mp4

*   2-15 26堆排序的实现(2).mp4

*   2-16 27堆排序的时间复杂度.mp4

*   2-17 28堆的内置模块.mp4

*   2-18 29topk问题.mp4

*   2-19 30topk实现.mp4

*   2-20 31归并排序实现.mp4

*   2-21 32归并排序归并.mp4

*   2-22 33归并排序复杂度讨论.mp4

*   2-23 34NB三人组小结.mp4

*   2-24 35希尔排序.mp4

*   2-25 36希尔排序讨论.mp4

*   2-26 37计数排序.mp4

*   2-27 38桶排序介绍.mp4

*   2-28 39桶排序实现.mp4

*   2-29 40基数排序介绍.mp4

*   2-30 41基数排序实现.mp4

*   2-31 42查找排序部分习题.mp4

*   2-32 43查找排序习题1.mp4

*   2-33 44查找排序习题2.mp4

*   2-34 45查找排序习题3.mp4

*   2-35 46查找排序习题4.mp4

*   3-1 47数据结构介绍.mp4

*   3-2 48列表.mp4

*   3-3 49栈的介绍.mp4

*   3-4 50栈的应用:括号匹配问题.mp4

*   3-5 51队列的介绍.mp4

*   3-6 52队列的实现.mp4

*   3-7 53队列的内置模块.mp4

*   3-8 54栈和队列的应用:迷宫问题.mp4

*   3-9 55使用栈解决迷宫问题.mp4

*   3-10 56使用队列进行迷宫问题:介绍.mp4

*   3-11 57使用队列进行迷宫问题:实现.mp4

*   3-12 58 链表介绍.mp4

*   3-13 59 链表创建和遍历.mp4

*   3-14 60 链表的插入和删除.mp4

*   3-15 61 双链表.mp4

*   3-16 62 链表总结.mp4

*   3-17 63 哈希表.mp4

*   3-18 64 哈希表实现.mp4

*   3-19 65 哈希表应用.mp4

*   3-20 66 树的概念.mp4

*   3-21 67 树的实例:模拟文件系统.mp4

*   3-22 68 二叉树的概念.mp4

*   3-23 69 二叉树的遍历.mp4

*   3-24 70 二叉搜索树的概念.mp4

*   3-25 71 二叉搜索树:插入.mp4

*   3-26 72 二叉搜索树:查询.mp4

*   3-27 73 二叉搜索树:删除.mp4

*   3-28 74 二叉搜索树:删除实现.mp4

*   3-29 75 AVL树的概念.mp4

*   3-30 76 AVL:旋转.mp4

*   3-31 77 AVL:旋转实现1.mp4

*   3-32 78 AVL:旋转实现2.mp4

*   3-33 80 AVL:插入.mp4

*   3-34 81 AVL树应用与数据结构总结.mp4

*   4-1 83 贪心算法(新一章:算法进阶).mp4

*   4-2 84 分数背包.mp4

*   4-3 85 分数背包实现.mp4

*   4-4 86 数字拼接问题.mp4

*   4-5 87 数字拼接问题实现.mp4

*   4-6 88 活动选择问题.mp4

*   4-7 9 活动选择问题实现.mp4

*   4-8 90 贪心算法总结.mp4

*   4-9 91 动态规划介绍.mp4

*   4-10 92 钢条切割问题.mp4

*   4-11 93 钢条切割问题:自顶向下实现.mp4

*   4-12 94 钢条切割问题:自底向上实现.mp4

*   4-13 95 钢条切割问题:重构解.mp4

*   4-14 96 最长公共子序列.mp4

*   4-15 97 最长公共子序列:实现.mp4

*   4-16 98 欧几里得算法.mp4

*   4-17 99 RSA算法介绍.mp4

*   4-18 100 RSA算法测试.mp4

*   4-19 101 算法课程总结.mp4