历史地图:数据结构与算法是怎样演进的
从古代算法、机械制表和电子计算机讲到平衡树、图算法、搜索系统与分布式结构,理解每类方法出现的现实原因。
分类 / 77 POSTS
数据结构、算法、操作系统、计算机网络与计算机组成原理等基础知识
ARTICLES
从古代算法、机械制表和电子计算机讲到平衡树、图算法、搜索系统与分布式结构,理解每类方法出现的现实原因。
从现实信息如何进入内存讲起,分清值、变量、地址、引用、数据结构和抽象数据类型,为后续学习建立共同语言。
把数据结构、经典题型、错题复盘和工程迁移串成一套长期学习方法,避免散刷题没有沉淀。
从文档、分词、倒排表、Posting List、查询合并和相关性排序理解全文搜索的底层结构。
按内存、精确性、排序和实时性选择分桶、堆、Bitmap、Bloom Filter、HyperLogLog 和外部排序。
从容量约束、残量网络和增广路建立最大流直觉,并说明最大流最小割定理的含义。
用 dfn、low 和栈理解 Tarjan 算法,说明强连通分量如何帮助有向图缩点成 DAG。
讲解二分图染色、最大匹配、匈牙利算法直觉,以及任务分配、资源匹配等工程场景。
讲清 pos、tight、started 和业务状态,使用记忆化搜索统计范围内满足条件的数字数量。
通过树上打家劫舍、树的直径和节点状态合并,理解树形 DP 为什么通常使用后序遍历。
拆解打家劫舍、最大子数组和、最长递增子序列和最长公共子序列,训练 DP 状态定义。
理解 Z 函数如何描述后缀与前缀匹配,后缀数组如何排序所有后缀并处理重复子串和 LCP。
通过分隔符、回文半径、中心和最右边界理解 Manacher,说明它如何复用镜像信息减少重复扩展。
从敏感词检测场景出发,讲清 AC 自动机如何用 Trie 和 fail 指针把多模式匹配合并成一次扫描。
把 AC 自动机、Manacher、Z 函数和后缀数组放到一张路线图里,按问题类型选择字符串算法。
从普通取模的问题讲到哈希环、虚拟节点、节点扩缩容和热点 key,理解一致性哈希的工程边界。
从缓存淘汰需求出发,讲清 LRU 为什么需要 HashMap 加双向链表,以及 get、put、淘汰的 O(1) 实现。
把跳表看作带多层高速路的链表,理解查询、插入、删除、随机层数和 Redis ZSet 等应用。
用 lowbit 理解树状数组的更新和查询,说明它在动态前缀和、逆序对和频次统计中的应用。
讲清线段树如何拆分区间,支持区间查询、单点修改和区间更新,并对比前缀和与树状数组。
从磁盘 IO、节点扇出、范围查询和叶子链表理解 B 树与 B+ 树,说明它们和红黑树的工程区别。
覆盖取模防溢出、最大公约数、快速幂、素数筛和组合计数,强调公式落地代码时的边界。
从二进制开关、异或、位计数、Bitmap 和状态压缩 DP 理解位运算的应用边界。
把矩阵格子抽象成图节点,讲解方向数组、岛屿 DFS、多源 BFS 和矩阵动态规划。
系统讲解合并区间、会议室数量、扫描线事件和差分数组,强调闭区间与半开区间边界。
从第 k 大、前 k 高频、数据流中位数和任务调度理解堆如何动态维护最值候选。
从保存 next、虚拟头节点、快慢指针和双链合并理解链表算法,重点处理断链和边界问题。
用数组线性扫描,用哈希表记录出现、频次、位置和前缀状态,覆盖两数之和、异位词和连续序列。
把问题抽象成状态图,再根据目标选择 DFS、BFS 或拓扑排序,讲清遍历、最短步数和依赖排序。
深入讲解 KMP 的 next 数组、失配跳转和字符串哈希的窗口摘要、取模与冲突处理。
用区间长度枚举和 bitmask 集合状态理解进阶 DP,说明状态数量、依赖顺序和规模边界。
从位数组和多哈希理解假阳性,推导容量参数,并分析删除限制与缓存穿透落地。
系统整理 0-1 背包、完全背包、多重背包、分组背包和方案数问题,重点区分遍历顺序。
理解用受控误差换取空间效率的共同思想,并比较 Bloom、Count-Min Sketch 与 HyperLogLog。
区分最短路和最小生成树,用 Prim 与 Kruskal 理解无向连通加权图里的最小连接成本。
手写两种图存储方式和 BFS,讨论重复边、权重、访问标记与 API 边界。
按无权、非负权、负权和多源查询选择最短路算法,并说明工程里权重建模的重要性。
建立有向、无向、加权、稀疏与稠密图的建模方式,并比较邻接矩阵和邻接表。
从无向图判环、账户合并、岛屿数量和等式约束理解并查集的算法应用边界。
使用父数组、路径压缩和按大小合并高效维护动态连通关系,并明确删除与路径查询边界。
从前序、中序、后序、层序遍历进入高度、直径、路径、LCA 和树形 DP 的状态设计。
从五条规则、插入染色、旋转和 2-3-4 树视角理解红黑树的近似平衡。
通过下一个更大元素和滑动窗口最大值理解单调结构,说明为什么每个元素最多进出一次。
理解 2-节点、3-节点、向上分裂与绝对平衡,并建立通往红黑树和 B 树的桥梁。
用归并排序、快速排序和递归树理解分治的拆分、求解、合并三步,以及复杂度如何分析。
围绕平衡因子、LL/RR/LR/RL 旋转、高度更新和不变量测试理解严格平衡树。
用区间调度、跳跃游戏和分发糖果理解贪心策略,重点说明为什么贪心必须证明正确性。
掌握 BST 有序不变量、三类删除情况、树高复杂度以及有序输入导致的退化问题。
从 BFS、DFS、拓扑排序、Dijkstra、Bellman-Ford、Floyd 和最小生成树建立图算法选择路线。
从字符路径、结束标记与节点表示理解前缀检索,并补充 Unicode 与压缩 Trie 边界。
BUILDS
这个领域下暂时没有公开项目。