Linux内核

单调栈(Monotonic Stack)深度实战:从「下一个更大元素」的第一性原理、严格与非严格单调,到直方图最大矩形、接雨水、股票价格跨度与流式单调对齐(MoChA)的工程全解

单调栈是一种在遍历序列时**让栈内元素始终保持单调(递增或递减)顺序**的栈变体。它表面上只是一个「压栈前先弹出破坏顺序的元素」的小技巧,本质上却是对「每个元素左右第一个不满足某顺序约束的邻居」这一反复出现的查询做 O(n) amortized 常数化复用的经典手法。本文从第一性原理出发,推导它的不变量与正确性,给出四个基础查询(下一个/上一个更大/更小元素)的统一实现,拆解直方图最大矩形、接雨…

堆与优先队列深度实战:从完全二叉树的数组映射、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内核线程,含性能基准数据与生产环境调优建议。