数据结构与算法(C 语言)

这门课的讲义坚持一件事:每个结论都尽量配一次真实测量。链表理论上是插入王,实测输给数组百倍(第 2 章),原因在缓存行;快排平均最快,不随机化在有序数据上当场退化(第 8 章);哈希表平均 O(1),装载因子 0.9 时照样悬崖(第 7 章)。算法课最怕学成背诵,而它明明是个实验学科,每章末尾的动手题都是可以真跑的。

全部用 C 实现,和 C 指针课程共用一套内存语言,第 12 章把全课的抽象拉回内存字节层面收账:

先修:会 C 的基本语法;指针细节随用随查 C 指针课程。教材配合:OI Wiki(算法竞赛视角)、VisuAlgo(动画演示, AVL 旋转和图算法强烈建议拖一遍)。