前沿观察

分类「前沿观察」下的文章与资讯

递归为什么会爆栈:主定理之外的工程现实

2026/08/1318 浏览

主定理只算"时间",不算"栈"。深层递归每层都要压一个调用帧,过深就栈溢出。本文讲清递归 vs 迭代的栈代价,以及如何用尾递归/迭代改写规避。

分治思想:从归并排序到最近点对

2026/08/1324 浏览

分治不只会排序。最近点对、Strassen 矩阵乘法、FFT 都是"分解—解决—合并"的同一套骨架。本文用一张图说明分治为什么是算法设计的通用范式。

主定理管不到的情况:这些递推式别硬套

2026/08/1322 浏览

主定理只认"除法型" aT(n/b)+f(n)。减法型、根号型、临界处负指数(如 n/log n)都会让它失效。本文列三类典型,并给出正确解法。

三种解递推式的武器:递归树、代入法、主定理

2026/08/1318 浏览

分析递归式有三件套:递归树给直觉、代入法做严格证明、主定理是分治情形的速查。本文讲清三者如何配合,避免只会背公式。

二分查找与主定理:为什么 log n 是分治的标准答案

2026/08/1332 浏览

二分查找 20 行代码,复杂度却是 O(log n)。把它写成递推式 T(n)=T(n/2)+1,主定理情况2 一眼给出 Θ(log n)——分治把"线性扫描"压成了"对数查找"。

归并排序为什么稳:分治 + 合并的 O(n log n)

2026/08/1328 浏览

归并排序是最经典的分治:先分到底,再合并两个有序段。它稳定、最坏也是 O(n log n),代价是多占 O(n) 额外空间。用递归树一看就懂。

为什么快排平均 O(n log n):主定理情况3与随机化

2026/08/139 浏览

快速排序最坏 O(n²),但平均却是 O(n log n)。用主定理的"期望"视角 + 随机化基准,能说清为什么"平均"就是分治的标准答案。

主定理到底在算什么:递归树一眼看懂

2026/08/1347 浏览

主定理常被当成"背公式",其实它只是递归树求和的速查版。本文用一张递归树讲清:把每层代价加起来,看哪一层主导总复杂度,三种情况自然浮现。

从跳表到内存池:链表思想的现代延展

2026/08/1322 浏览

链表不只是课本里的单/双/循环。它的"节点 + 指针"思想,衍生出跳表(Redis 有序集合)、内存池、邻接表等现代基础设施。今天把链表思想的上限拉到工业级。

哨兵节点(dummy head):让链表代码干净一半的技巧

2026/08/1315 浏览

链表代码最烦人的就是"头节点要特殊处理"。哨兵节点(dummy head)——一个不存数据的假头——能把这个边界彻底抹平。今天讲清它为什么是工程必修课。

快慢指针:链表里的"龟兔赛跑"能解哪些题

2026/08/1324 浏览

让一个指针走两步、另一个走一步,这个简单的"龟兔赛跑"技巧,能判环、找中点、找倒数第 k 个节点。今天盘点快慢指针的几大经典用法,看它如何用 O(1) 空间办成大事。

链表反转:面试出现率最高的算法题,为什么

2026/08/1321 浏览

如果算法面试只能押一道链表题,十有八九是"反转链表"。它代码不过十行,却能把"指针走向"的功底考个底朝天。今天拆穿它为什么是试金石,以及如何一次写对。

循环链表与约瑟夫环:一个古老问题的现代解法

2026/08/1316 浏览

公元 1 世纪的犹太历史学家约瑟夫斯留下一道生死题:n 个人围成一圈,每数到 m 就出圈,最后谁活下来?今天用循环链表,把这道两千年前的题讲成一行优雅的代码。

双向链表如何撑起浏览器的前进后退

2026/08/1321 浏览

你每次点"后退""前进",背后是一张双向链表在默默记录历史。今天用浏览器历史这个人人都用过的例子,讲清双向链表"正反都能走、且能 O(1) 自删"的独特价值。

LRU 缓存:链表与哈希的完美联姻

2026/08/1320 浏览

LRU(最近最少使用)是面试与工程的高频考点。它的优雅解法只用两种结构:哈希表负责"秒查",双向链表负责"按访问顺序排布并能 O(1) 摘除"。今天拆开这个教科书级组合。

链表 vs 数组:为什么 Redis、ZGC、操作系统都爱链表

2026/08/1318 浏览

数组和链表是两种最基础的线性结构,一个重"随机访问"、一个重"灵活增删"。今天从内存布局出发,说清它们各自的战场,以及为何 Redis、ZGC、操作系统内核里链表无处不在。

排序不只是排序:Top-K、找中位数、外部排序,一个思想打通三类难题

2026/08/1326 浏览

排序是"瑞士军刀"——会了它,Top-K、第 k 小、中位数、海量数据排序这些看似不同的问题都能被统一解决。今天看排序思想如何"降维"攻克相邻难题。

排序与图灵奖:那些改变世界的算法思想,如何穿越六十年

2026/08/1313 浏览

排序看似平凡,却与多位图灵奖得主的工作深深交织——Hoare 的快排、Tarjan 的不相交集合、Cook 的 NP 完备理论。今天从"先驱思想→后世印证"的视角,看排序如何串起计算史的脉络。

现代语言里的排序:Python 用 Timsort,Java 用双轴快排,凭什么不一样

2026/08/1326 浏览

你每天调用的 sort(),背后藏着截然不同的工程哲学。Python/Java 对象用稳定的 Timsort,Java 基本类型用双轴快排——今天对比两套主流实现的取舍。

插入排序为何在小数组上比快排还快?常数因子的隐藏江湖

2026/08/1325 浏览

理论上 O(n²) 的插入排序,实战中却常是快排、归并的"收尾小弟"。秘密不在复杂度,而在被忽视的"常数因子"与缓存——今天拆开这个反直觉现象。

精选阅读 - 用可视化演示,真正搞懂 AI 与编程 | 必学必会