系统内核

堆与优先队列深度实战:从完全二叉树的数组映射、sift-down 到 Top-K、中位数维护与定时器堆的工程全解

优先队列(Priority Queue)是工程里最被低估、却无处不在的数据结构:任务调度、定时器、Dijkstra、Top-K 流式统计、中位数维护、K 路归并,背后都是它。而**堆(Heap)**是实现优先队列最经典、最省内存的底层结构——一棵"几乎填满"的完全二叉树被压进一个连续数组,用下标算术代替指针。本文从完全二叉树与数组映射的第一性原理出发,推导 sift-down / sift-up …

Linux内核内存压缩与页面迁移实战:CMA、KSM与compaction

深入解析Linux内核三大内存管理机制:CMA连续内存分配器、KSM同页合并与Memory Compaction碎片整理,涵盖CMA预留-迁移策略、KSM稳定树/不稳定树数据结构、Compaction触发路径与kcompactd内核线程,含性能基准数据与生产环境调优建议。

快速排序与归并排序深度实战:从分区第一性原理、三路切分与内省排序,到外排序、稳定性与 AI 数据管线的工程全解

排序是计算机科学里被讲述最多、也最容易被"以为已经懂了"的算法。绝大多数工程师能默写 Lomuto 分区,却说不清 Hoare 分区少了多少次交换;能背出快排平均 O(n log n),却在面对"为什么 `std::sort` 既快又不会被恶意输入打爆"时哑口无言;会在内存里排 10 万元素,却在外排序喂不动 2 TB 训练样本时束手无策。

基数树(Radix Tree / Patricia Trie)深度实战:从路径压缩、二进制切分到 Linux 页缓存 xarray 与路由最长前缀匹配的工程全解

在「字典树(Trie / 前缀树)深度实战」一文中,我们拆解了 Trie 如何用「字符沿边展开」把前缀共享做到极致,却也暴露了一个结构性代价:当插入大量长键且共享前缀稀疏时,Trie 会膨胀出无数只含单个子节点的「瘦链」节点,内存与指针开销被白白浪费。基数树(Radix Tree,又名 Patricia Trie、压缩前缀树)正是为消灭这些瘦链而生的——它通过**路径压缩(path compres…