最新内容
文章与资讯,登录与否均可阅读 · RSS 订阅
从跳表到内存池:链表思想的现代延展
链表不只是课本里的单/双/循环。它的"节点 + 指针"思想,衍生出跳表(Redis 有序集合)、内存池、邻接表等现代基础设施。今天把链表思想的上限拉到工业级。
哨兵节点(dummy head):让链表代码干净一半的技巧
链表代码最烦人的就是"头节点要特殊处理"。哨兵节点(dummy head)——一个不存数据的假头——能把这个边界彻底抹平。今天讲清它为什么是工程必修课。
快慢指针:链表里的"龟兔赛跑"能解哪些题
让一个指针走两步、另一个走一步,这个简单的"龟兔赛跑"技巧,能判环、找中点、找倒数第 k 个节点。今天盘点快慢指针的几大经典用法,看它如何用 O(1) 空间办成大事。
链表反转:面试出现率最高的算法题,为什么
如果算法面试只能押一道链表题,十有八九是"反转链表"。它代码不过十行,却能把"指针走向"的功底考个底朝天。今天拆穿它为什么是试金石,以及如何一次写对。
循环链表与约瑟夫环:一个古老问题的现代解法
公元 1 世纪的犹太历史学家约瑟夫斯留下一道生死题:n 个人围成一圈,每数到 m 就出圈,最后谁活下来?今天用循环链表,把这道两千年前的题讲成一行优雅的代码。
双向链表如何撑起浏览器的前进后退
你每次点"后退""前进",背后是一张双向链表在默默记录历史。今天用浏览器历史这个人人都用过的例子,讲清双向链表"正反都能走、且能 O(1) 自删"的独特价值。
LRU 缓存:链表与哈希的完美联姻
LRU(最近最少使用)是面试与工程的高频考点。它的优雅解法只用两种结构:哈希表负责"秒查",双向链表负责"按访问顺序排布并能 O(1) 摘除"。今天拆开这个教科书级组合。
链表 vs 数组:为什么 Redis、ZGC、操作系统都爱链表
数组和链表是两种最基础的线性结构,一个重"随机访问"、一个重"灵活增删"。今天从内存布局出发,说清它们各自的战场,以及为何 Redis、ZGC、操作系统内核里链表无处不在。
排序不只是排序:Top-K、找中位数、外部排序,一个思想打通三类难题
排序是"瑞士军刀"——会了它,Top-K、第 k 小、中位数、海量数据排序这些看似不同的问题都能被统一解决。今天看排序思想如何"降维"攻克相邻难题。
排序与图灵奖:那些改变世界的算法思想,如何穿越六十年
排序看似平凡,却与多位图灵奖得主的工作深深交织——Hoare 的快排、Tarjan 的不相交集合、Cook 的 NP 完备理论。今天从"先驱思想→后世印证"的视角,看排序如何串起计算史的脉络。
现代语言里的排序:Python 用 Timsort,Java 用双轴快排,凭什么不一样
你每天调用的 sort(),背后藏着截然不同的工程哲学。Python/Java 对象用稳定的 Timsort,Java 基本类型用双轴快排——今天对比两套主流实现的取舍。
插入排序为何在小数组上比快排还快?常数因子的隐藏江湖
理论上 O(n²) 的插入排序,实战中却常是快排、归并的"收尾小弟"。秘密不在复杂度,而在被忽视的"常数因子"与缓存——今天拆开这个反直觉现象。
稳定排序到底有什么用?一个被忽视却决定成败的细节
相等元素的相对顺序,听起来无关紧要,却在多列排序、数据库、基数排序里决定成败。今天用真实场景说清"稳定性"为何是工业级排序的硬指标。
为什么比较排序最快只能是 O(n log n)?一个反直觉的信息论下界
无论多聪明的比较排序, worst case 都不可能快于 Ω(n log n)。这不是工程限制,而是信息论铁律——今天用"决策树"三分钟讲清这个反直觉的结论。
Tony Hoare 与快速排序:一个在电梯里想出来的算法,拿下图灵奖
1960 年,26 岁的 Tony Hoare 在莫斯科为一台俄英翻译机排序句子时,构思出了快速排序。这个"平均最快"的算法让他后来获得了 1980 年图灵奖,也成了算法史上最著名的轶事之一。
排序算法四十年:从 Bubble 到 Timsort,谁在决定你电脑的快慢
从 1950 年代的冒泡、插入,到 Hoare 的快排、von Neumann 的归并,再到今天 Python 的 Timsort 与 C++ 的 introsort——排序算法的演进史,就是一部"在理论与工程之间找平衡"的历史。
P vs NP:算法世界里那道"世纪难题"
有些问题我们知道"验证答案很快",却不知道"找出答案多快"。P 是否等于 NP,是千年算力分界,也是图灵奖级别的开放问题。
动态规划:从斐波那契到背包的"记忆化"思维
斐波那契用递归会算到天荒地老,加一张备忘表就飞快。这种"记忆化"思维,正是动态规划的灵魂。
二分查找:20 行代码里藏着的对数级智慧
二分查找不到 20 行,却是"分而治之"最优雅的范本。为什么它每次都能丢掉一半?本文把它讲透。
LRU 缓存与链表:大厂面试最爱考的数据结构题
"设计一个 O(1) 的 LRU 缓存"是高频面试题。它考的正是链表 + 哈希的组合。本文拆透这道题背后的思想。