算法与数据库 · 图解

12 张动图

看得见,才想得通

两条线:一条是 26 个算法的骨架,一条是从零写一个数据库的 11 章。每节都配一张能单步播放的动图——先看它怎么动,再读为什么这么动。

从零 · 11 章

手写一个数据库

页是什么、页号怎么变偏移、页内记录怎么排、文件头怎么认自己人、缓冲池怎么换页、B+ 树怎么分裂、WAL 怎么救回崩溃前的数据。

26 个 · 精选 6 个动图

算法的骨架

二分查找、快速排序的分区、背包的填表、BFS 的扩散、哈希冲突、KMP 的前缀表——每个都给可逐步推进的图解。

怎么看:每张图下面有 ▶ 播放 / ◀ ▶| / 重置 / 倍速。急的时候连点「▶|」单步走,比看动画更能记住细节;卡住就点「重置」从头来。
这两条线的关系:数据库是「算法 + 数据结构 + 磁盘」的合成品。先看数据库那条,你会发现每个算法都在某个具体位置上班——二分在 B+ 树里找页,排序在外部归并里合并磁盘块,图搜索在查询计划里选路。

内容改编自本机两处记录:算法手册(26 个算法)与 cpp-db 从零实现(第 0–10 章)。讲解、动图、文字为教学目的重新组织。

→ 数据库 · → 算法