数据结构常见英文术语速查手册

1. 线性结构

1.1 数组与矩阵

中文名称 英文术语 说明 重点
数组 Array 相同类型元素的有序集合,连续内存存储。
下标 / 索引 Index 访问数组元素的编号,通常从0开始。
一维数组 One-dimensional Array 线性顺序存储的一维结构。
多维数组 Multi-dimensional Array 二维及以上数组,如矩阵。
矩阵 Matrix 二维数字网格,用于线性代数。
稀疏矩阵 Sparse Matrix 多数元素为零的矩阵。
对称矩阵 Symmetric Matrix 方阵中 Aij = Aji
三角矩阵 Triangular Matrix 上三角或下三角存值,其余为0。
对角矩阵 Diagonal Matrix 非主对角线元素均为0。
行优先 Row-major Order 按行顺序存储多维数组。
列优先 Column-major Order 按列顺序存储多维数组。

1.2 链表

中文名称 英文术语 说明 重点
链表 Linked List 由节点链接而成的线性结构,非连续存储。
节点 Node 存数据和指针的基本单元。
单链表 Singly Linked List 每个节点指向下一个节点。
双向链表 Doubly Linked List 节点有前驱和后继两个指针。
循环链表 Circular Linked List 尾节点指向头节点形成环。
头指针 Head Pointer 指向链表第一个节点的指针。
头节点 Head Node 附加的辅助节点,简化操作。
尾指针 Tail Pointer 指向链表最后一个节点的指针。
哨兵 Sentinel Node 用于简化边界条件的哑元节点。
静态链表 Static Linked List 用数组实现链表(游标代替指针)。

1.3 栈

中文名称 英文术语 说明 重点
Stack 后进先出(LIFO)的线性结构。
压栈 / 入栈 Push 将元素放入栈顶。
弹栈 / 出栈 Pop 移除并返回栈顶元素。
栈顶 Top 最后入栈的元素位置。
栈底 Bottom 最先入栈的元素位置。
栈满 Stack Overflow / Full 栈空间已满,无法入栈。
栈空 Stack Empty 栈中无元素。
后缀表达式 Postfix Expression(逆波兰式) 运算符置于操作数之后。
中缀表达式 Infix Expression 日常算术表达式。
括号匹配 Parenthesis Matching 使用栈检查括号是否成对。

1.4 队列

中文名称 英文术语 说明 重点
队列 Queue 先进先出(FIFO)的线性结构。
入队 Enqueue 将元素加入队尾。
出队 Dequeue 移除并返回队头元素。
队头 Front / Head 第一个将被取出的元素。
队尾 Rear / Tail 最后一个入队的元素。
循环队列 Circular Queue 将顺序队列首尾相接,解决假溢出。
双端队列 Deque (Double-ended Queue) 两端都可入队、出队。
输出受限双端队列 Output-restricted Deque 删除只能在一端进行。
输入受限双端队列 Input-restricted Deque 插入只能在一端进行。
优先队列 Priority Queue 元素带有优先级,每次出队最高优先级。

2. 树形结构

2.1 树的基本概念

中文名称 英文术语 说明 重点
Tree 具有层次关系的非线性结构。
节点 Node 树中的基本元素。
根节点 Root 树的顶层节点,无父节点。
叶子节点 Leaf Node 无子节点的终端节点。
父节点 Parent Node 直接连接的上层节点。
子节点 Child Node 直接连接的下层节点。
兄弟节点 Sibling Nodes 拥有同一父节点的节点。
祖先节点 Ancestor 从根到当前节点路径上所有节点。
子孙节点 Descendant 当前节点子树中的所有节点。
Degree(节点的度/树的度) 节点的子节点个数;树中最大度数。
层次 Level 根为第1层(或第0层),向下递增。
深度 Depth 节点到根的唯一路径边数。
高度 Height 节点到最深叶子的最长路径边数;树的高度是根的高度。

2.2 二叉树

中文名称 英文术语 说明 重点
二叉树 Binary Tree 每个节点最多有两个子节点。
满二叉树 Full Binary Tree 所有节点都有0或2个子节点。
完全二叉树 Complete Binary Tree 除最后一层外每层都填满,最后一层从左向右填充。
二叉搜索树(BST) Binary Search Tree 左子树值 < 根值 < 右子树值。
平衡二叉树 Balanced Binary Tree(AVL 树) 任意节点左右子树高度差不超过1。
红黑树 Red-Black Tree 通过着色约束保持近似平衡的BST。
哈夫曼树 Huffman Tree 带权路径长度最小的二叉树,用于压缩。
二叉线索树 Threaded Binary Tree 利用空指针充当线索,方便遍历。
先序遍历 Preorder Traversal (Root-Left-Right) 根 → 左 → 右。
中序遍历 Inorder Traversal (Left-Root-Right) 左 → 根 → 右。
后序遍历 Postorder Traversal (Left-Right-Root) 左 → 右 → 根。
层序遍历 Level-order Traversal 按层次从上到下访问。

2.3 堆

中文名称 英文术语 说明 重点
Heap 一种特殊的完全二叉树,满足根与子节点的偏序关系。
最大堆 Max-Heap 父节点值 ≥ 子节点值。
最小堆 Min-Heap 父节点值 ≤ 子节点值。
堆化 Heapify 将一个无序数组调整为堆结构。
上滤 / 下滤 Sift Up / Sift Down 堆调整中的上升、下降操作。

2.4 多路查找树

中文名称 英文术语 说明 重点
B 树 B-Tree 多路自平衡搜索树,广泛用于数据库和文件系统。
B+ 树 B+ Tree B 树的变种,所有数据只存叶子节点,叶子节点形成有序链表。
B* 树 B* Tree B+ 树变种,非叶子节点也有部分数据,空间利用率更高。
2-3 树 2-3 Tree 节点可存 1 或 2 个关键字,子节点数相应为 2 或 3。
2-3-4 树 2-3-4 Tree 节点可存 1~3 个关键字,子节点数相应为 2~4。
键 / 关键字 Key 用于查找树节点的值。
Order(B 树阶数) 控制节点最大子节点数,决定分支因子。

2.5 其他树结构

中文名称 英文术语 说明 重点
字典树 / 前缀树 Trie / Prefix Tree 用字符串公共前缀压缩存储,支持快速查找。
线段树 Segment Tree 用于区间查询和更新。
树状数组 Binary Indexed Tree (BIT) / Fenwick Tree 支持前缀和快速更新与查询。
并查集 Disjoint Set Union / Union-Find 用于处理集合的合并与查找。
森林 Forest 多棵树的集合。
表达式树 Expression Tree 叶子存操作数,内部节点存运算符。

3. 图形结构

中文名称 英文术语 说明 重点
Graph 由顶点和边组成的非线性结构。
顶点 / 节点 Vertex (复数 Vertices) 图中的基本元素。
Edge 连接两个顶点的线段。
有向图 Directed Graph (Digraph) 边有方向。
无向图 Undirected Graph 边无方向。
权 / 权重 Weight 边上的数值,表示代价、距离等。
Degree 无向图中顶点的边数。
入度 In-degree 有向图中指向该顶点的边数。
出度 Out-degree 有向图中从该顶点出发的边数。
邻接点 Adjacent Vertex 与该顶点直接相连的顶点。
路径 Path 顶点序列,相邻顶点间有边。
简单路径 Simple Path 路径中顶点不重复。
回路 / 环 Cycle / Circuit 起点与终点相同的路径。
连通图 Connected Graph 无向图中任意两顶点都有路径。
强连通图 Strongly Connected Graph 有向图中任意两顶点互相可达。
连通分量 Connected Component 无向图中极大连通子图。
强连通分量 Strongly Connected Component 有向图中极大强连通子图。
生成树 Spanning Tree 包含图中所有顶点的极小连通子图(边数最少)。
最小生成树 Minimum Spanning Tree (MST) 边权之和最小的生成树。
最短路径 Shortest Path 两顶点间权重和最小的路径。
拓扑排序 Topological Sort 有向无环图的顶点线性排序。
关键路径 Critical Path 工程网络中决定总工期的路径。
邻接矩阵 Adjacency Matrix 用二维数组存储图的顶点关系。
邻接表 Adjacency List 用链表/数组存储每个顶点的邻接点。
有向无环图 Directed Acyclic Graph (DAG) 无环的有向图。
二分图 / 偶图 Bipartite Graph 顶点可分成两个集合,边只连接不同集合的顶点。
欧拉路径 Eulerian Path 恰好经过每条边一次的路径。
哈密顿路径 Hamiltonian Path 恰好经过每个顶点一次的路径。

4. 查找结构

中文名称 英文术语 说明 重点
查找 / 搜索 Search 在数据集合中找到特定元素。
平均查找长度 Average Search Length (ASL) 查找过程中元素比较次数的期望值。
顺序查找 Sequential Search / Linear Search 从一端开始逐个比较查找。
二分查找 Binary Search 要求有序,每次折半比较。
分块查找 / 索引顺序查找 Block Search / Indexed Sequential Search 分块并建立索引,块内无序。
哈希表 / 散列表 Hash Table 通过哈希函数直接映射到存储位置。
散列函数 Hash Function 将关键字映射为地址的函数。
冲突 / 碰撞 Collision 不同关键字映射到同一地址。
开放定址法 Open Addressing 发生冲突时探测下一个空位。
线性探测 Linear Probing 依次探测下一个位置。
二次探测 Quadratic Probing 以平方步长探测。
链地址法 / 拉链法 Separate Chaining 将所有冲突元素存入链表或树。
再散列法 Rehashing 构造多个散列函数,冲突时换一个。
装填因子 Load Factor (α) 哈希表中已存元素个数与表长的比值。
完美哈希 Perfect Hashing 无冲突的哈希函数。
动态哈希 Dynamic Hashing (Extendible Hashing / Linear Hashing) 表长可动态变化。

5. 排序算法

中文名称 英文术语 说明 重点
排序 Sorting 使记录序列按关键字有序排列。
稳定性 Stability 相等关键字元素的相对次序不变。
内部排序 / 外部排序 Internal / External Sorting 数据能否全部装入内存。
时间复杂度 Time Complexity 算法执行时间随数据规模的增长趋势。
空间复杂度 Space Complexity 算法所需额外存储空间。
比较排序 Comparison Sort 仅通过比较关键字来完成排序。
交换排序 Exchange Sort 通过交换元素位置实现排序。
冒泡排序 Bubble Sort 反复交换相邻逆序对,稳定,O(n²)。
快速排序 Quick Sort 分治法,选基准分区,平均 O(n log n)。
插入排序 Insertion Sort 将元素逐个插入已排好的子序列中。
希尔排序 Shell Sort 改进的插入排序,按增量分组。
选择排序 Selection Sort 每次选最值放到已排序列末尾。
堆排序 Heap Sort 利用最大/最小堆实现,平均 O(n log n)。
归并排序 Merge Sort 分治法,递归划分再合并,稳定 O(n log n)。
基数排序 Radix Sort 按关键字的各位依次分配收集。
桶排序 Bucket Sort 将数据分入若干桶内排序再合并。
计数排序 Counting Sort 适用于范围有限的整数,非比较排序。
锦标赛排序 Tournament Sort 树形选择排序。
决策树模型 Decision Tree Model 用树形结构表示比较排序的可能过程。

6. 算法设计常用术语

中文名称 英文术语 说明 重点
分治法 Divide and Conquer 将问题分解为子问题,递归求解再合并。
动态规划 Dynamic Programming (DP) 保存子问题解,避免重复计算。
贪心算法 Greedy Algorithm 每步选择当前局部最优解。
回溯法 Backtracking 试探所有可能,遇到死路就回退。
分支限界法 Branch and Bound 用限界函数剪枝,常用于组合优化。
递归 Recursion 函数直接或间接调用自身。
迭代 Iteration 用循环重复执行代码块。
穷举搜索 Exhaustive Search / Brute Force 列举所有可能找出解。
状态空间 State Space 由全部可能状态组成的树或图。
剪枝 Pruning 在搜索中提前终止不必要的路径。
时间复杂度 Time Complexity 常用大 O 记号表达。
空间复杂度 Space Complexity 算法所需内存。
最坏情况 Worst Case 对算法最不利的输入情形。
平均情况 Average Case 输入随机分布的期望性能。
最好情况 Best Case 最有利的输入情形。
原地算法 In-place Algorithm 辅助空间为 O(1) 的算法。
稳定算法 Stable Algorithm 相等元素保持原有顺序。

7. 其他重要术语

中文名称 英文术语 说明 重点
抽象数据类型 Abstract Data Type (ADT) 定义数据对象及其上操作,不关心实现。
数据元素 Data Element 数据的基本单位,可包含多个数据项。
数据项 Data Item 构成数据元素的最小不可分单位。
关键字 Key 数据元素中用于标识或排序的数据项。
主关键字 Primary Key 唯一标识元素的关键字。
次关键字 Secondary Key 可能不唯一的关键字。
顺序存储结构 Sequential Storage Structure 用连续内存单元存储(如数组)。
链式存储结构 Linked Storage Structure 用指针链接分散的存储单元。
索引存储 Indexed Storage 建立附加索引表提高查找速度。
散列存储 Hash Storage (Hashing) 通过哈希函数确定存储地址。
指针 / 引用 Pointer / Reference 存储变量地址的变量。
空指针 Null Pointer / Nil 不指向任何有效对象。
头指针 Head Pointer 指向表/结构起始位置的指针。
尾指针 Tail Pointer 指向表/结构末尾位置的指针。
哨兵 Sentinel 用于简化循环边界判断的辅助值。

8. 补充术语

8.1 线性结构补充

中文名称 英文术语 说明 重点
线性表 Linear List 零个或多个数据元素的有限序列,是栈、队列、数组等结构的抽象总称。
顺序表 Sequential List / Sequence List 用一组地址连续的存储单元依次存储线性表的数据元素。
动态数组 Dynamic Array / Resizable Array 大小可变的数组,底层自动扩容(如 Java 的 ArrayList、C++ 的 vector)。
向量 Vector 一维动态数组;也指线性代数中的有向线段。
跳跃表 / 跳表 Skip List 在有序链表上增加多级索引实现快速查找,期望复杂度 O(log n)。
自组织链表 Self-organizing List 根据访问频率动态调整元素位置(如移至前端)的链表。
异或链表 XOR Linked List 用单个指针字段存储前后节点地址的 XOR,节省空间。
块状链表 Unrolled Linked List / Block List 每个节点存储多个元素的链表,兼顾数组缓存友好与链表动态性。
共享栈 Shared Stack / Two Stacks 两个栈共享同一块数组空间,向中间生长。
单调栈 Monotonic Stack 栈内元素保持单调递增或递减,常用于解决 Next Greater Element 等问题。
单调队列 Monotonic Queue 队列中元素保持单调性,常用于滑动窗口最值问题。
消息队列 Message Queue 用于进程/线程间通信的队列结构,解耦生产者和消费者。
环形缓冲区 Ring Buffer / Circular Buffer 固定大小的循环缓冲区,用于流式数据处理。

8.2 字符串结构

中文名称 英文术语 说明 重点
字符串 String 由零个或多个字符组成的有限序列。
空串 Empty String / Null String 长度为零的字符串。
空格串 Blank String 由一个或多个空格组成的字符串。
子串 Substring 字符串中任意连续字符组成的子序列。
主串 Main String 包含子串的原始字符串。
模式串 Pattern String 在字符串匹配中待查找的字符串。
模式匹配 Pattern Matching 在主串中查找模式串出现的位置。
暴力匹配 Brute-Force Matching / Naive String Matching 逐字符比较,复杂度 O(n·m)。
KMP 算法 Knuth-Morris-Pratt Algorithm 利用部分匹配表(next 数组)跳过无效比较,O(n + m)。
部分匹配表 Partial Match Table / Failure Function KMP 算法中记录前缀后缀匹配长度的辅助数组。
BM 算法 Boyer-Moore Algorithm 从右向左匹配,利用坏字符和好后缀规则,实践中高效。
Sunday 算法 Sunday Algorithm BM 算法的简化变体,关注匹配窗口后的下一字符。
字典序 Lexicographical Order 按字符编码逐个比较的字符串排序规则。
前缀 Prefix 从第一个字符开始的任意连续子串。
后缀 Suffix 以最后一个字符结尾的任意连续子串。
最长公共前缀 Longest Common Prefix (LCP) 多个字符串共同的最长前缀。
最长公共子串 Longest Common Substring 多个字符串中最长的相同连续子串。
最长公共子序列 Longest Common Subsequence (LCS) 多个字符串中按顺序出现但未必连续的最长公共序列。
编辑距离 Edit Distance / Levenshtein Distance 一个字符串转成另一个所需的最少插入、删除、替换次数。

8.3 树形结构补充

中文名称 英文术语 说明 重点
左孩子右兄弟 Left-Child Right-Sibling Representation 二叉树表示一般树的一种方式。
平衡因子 Balance Factor AVL 树中某节点左右子树高度之差,取值范围 −1 / 0 / +1。
旋转 Rotation(LL / RR / LR / RL) AVL 树或红黑树中通过旋转调整平衡。
二叉堆 Binary Heap 用数组实现的完全二叉树堆结构,是实现优先队列的常用方式。
斐波那契堆 Fibonacci Heap 摊还复杂度更优的堆,合并操作 O(1),用于图算法优化。
二叉堆合并 Merge / Meld 将两个堆合并为一个。
左偏树 / 左式堆 Leftist Heap 用附加距离值(NPL)保证左偏,支持高效合并的堆。
斜堆 Skew Heap 左式堆的自调整简化版本,不维护 NPL。
配对堆 Pairing Heap 基于多路树的理论高效堆,实践性能优良。
二项堆 Binomial Heap 由一组二项树组成的堆,合并效率高。
伸展树 Splay Tree 每次访问后将节点旋转到根,分摊 O(log n)。
替罪羊树 Scapegoat Tree 用部分重构而非旋转来实现平衡的 BST。
Treap Treap (Tree + Heap) 结合 BST 与堆的性质,每个节点随机附加优先级。
笛卡尔树 Cartesian Tree 按序列顺序构造,根为最值的二叉树。
默克尔树 Merkle Tree / Hash Tree 叶子节点存数据哈希,非叶节点存子节点哈希,用于数据完整性校验。
后缀树 Suffix Tree 压缩存储字符串所有后缀的 Trie,支持快速子串查询。
后缀数组 Suffix Array 所有后缀按字典序排序后的数组,空间优于后缀树。
基数树 / 压缩 Trie Radix Tree / Patricia Trie 合并单分支节点的前缀树,节省空间。
决策树 Decision Tree 用于机器学习分类/回归的树形模型;也指比较排序模型。
支配树 Dominator Tree 控制流分析中,节点 A 支配 B 表示从入口到 B 的所有路径都经过 A。
树的重心 Centroid of a Tree 删除该点后剩余连通块的最大节点数最小。
树的直径 Diameter of a Tree 树中最长简单路径的长度。
虚树 Virtual Tree / Auxiliary Tree 只保留关键节点及它们的 LCA,用于优化树上 DP。
轻重链剖分 Heavy-Light Decomposition (HLD) 将树剖分为多条重链,支持路径/子树高效查询。
树链剖分 Tree Chain Splitting 重链剖分的另一种叫法。
最近公共祖先 Lowest Common Ancestor (LCA) 两个节点的深度最大的共同祖先。
倍增法 Binary Lifting 通过预处理 2^k 代祖先,实现 O(log n) 查询 LCA 等信息。

8.4 图形结构补充

中文名称 英文术语 说明 重点
Arc 有向图中的有向边。
自环 Loop / Self-loop 顶点到自身的边。
多重边 / 平行边 Multiple Edge / Parallel Edge 两顶点之间多条边。
简单图 Simple Graph 无自环且无平行边的图。
多重图 Multigraph 允许平行边但无自环的图。
伪图 Pseudograph 允许自环和平行边的图。
完全图 Complete Graph 每对顶点之间都有一条边的无向图。
稠密图 / 稀疏图 Dense Graph / Sparse Graph 边数接近或远小于顶点数平方。
子图 Subgraph 顶点集和边集都是原图的子集。
生成子图 Spanning Subgraph 包含原图所有顶点的子图。
补图 Complement Graph 原图中没有的边全部存在,有的边全部去掉。
同构 Isomorphism 两个图通过重标顶点可以完全一样。
连通性 Connectivity 图中顶点之间可达的性质。
割点 / 关节点 Articulation Point / Cut Vertex 删除后连通分量增加的顶点。
桥 / 割边 Bridge / Cut Edge 删除后连通分量增加的边。
双连通分量 Biconnected Component (BCC) 无割点的极大连通子图。
点双连通 / 边双连通 Vertex/Edge Biconnected 删除任一点/边后仍连通。
传递闭包 Transitive Closure 反映顶点间可达关系的矩阵。
宽度优先搜索 Breadth-First Search (BFS) 从起点逐层向外扩展,适合无权图最短路径。
深度优先搜索 Depth-First Search (DFS) 从起点沿着一条路径深入,再回溯。
DFS 树 / BFS 树 DFS Tree / BFS Tree DFS/BFS 过程中生成的生成树/森林。
树边 / 回边 / 前向边 / 横叉边 Tree Edge / Back Edge / Forward Edge / Cross Edge DFS 遍历中对边的分类。
拓扑序 Topological Order DAG 中每条有向边 (u, v) 均满足 u 在 v 之前的线性排序。
入度表 / 出度表 In-degree / Out-degree Table 存储每个顶点入度/出度的辅助表。
迪杰斯特拉算法 Dijkstra's Algorithm 求非负权图单源最短路径的贪心算法。
贝尔曼-福特算法 Bellman-Ford Algorithm 支持负权边的最短路径算法,可检测负环。
SPFA 算法 Shortest Path Faster Algorithm Bellman-Ford 的队列优化版本。
弗洛伊德算法 Floyd-Warshall Algorithm 动态规划求所有点对最短路径,O(V³)。
约翰逊算法 Johnson's Algorithm 重赋权后结合 Dijkstra 和 Bellman-Ford 求所有点对最短路。
负权边 / 负权环 Negative Edge / Negative Cycle 权值为负的边;环上边权之和为负的环。
松弛操作 Relaxation 更新最短路径估计值的操作:if dv > du + w then dv = du + w。
最大流 Maximum Flow 从源点到汇点的最大可行流量。
网络流 Network Flow 带容量限制的有向图。
残留网络 Residual Network / Residual Graph 包含反向边的剩余容量图。
增广路 Augmenting Path 残留网络中从源点到汇点的路径。
割 / 最小割 Cut / Minimum Cut (Min-Cut) 顶点集划分;容量最小的 s-t 割。
最大流最小割定理 Max-Flow Min-Cut Theorem 最大流等于最小割的容量。
福特-富尔克森算法 Ford-Fulkerson Algorithm 用 DFS 不断寻找增广路求最大流。
埃德蒙兹-卡普算法 Edmonds-Karp Algorithm 用 BFS 找最短增广路的 Ford-Fulkerson 实现。
二分图匹配 Bipartite Matching 二分图中寻找最大匹配。
匈牙利算法 Hungarian Algorithm 求二分图最大匹配和赋权二分图最优匹配。
网络流问题 Flow Network Problems 含最大流、最小费用流、多商品流等。
最小费用最大流 Minimum Cost Maximum Flow (MCMF) 在流量最大前提下使总费用最小。
A* 算法 A-Star (A*) Search 结合启发式函数的最短路径启发式搜索算法。
启发式函数 Heuristic Function 引导搜索方向的估值函数 h(n)。
并查集路径压缩 Path Compression 查找时将路径上节点直接连到根,优化后续查询。
按秩合并 Union by Rank / Union by Size 合并时将小的集合合并到大的集合,维持树高度平衡。
克鲁斯卡尔算法 Kruskal's Algorithm 按边权排序,贪心选取不构成环的边,用并查集判环。
普里姆算法 Prim's Algorithm 从任意顶点开始,每次选最小权边扩展 MST。

8.5 查找结构补充

中文名称 英文术语 说明 重点
斐波那契查找 Fibonacci Search 利用斐波那契数列分割有序序列,仅用加减法。
插值查找 Interpolation Search 均匀分布时按比例估算位置,期望 O(log log n)。
指数查找 Exponential Search 先找到大致范围再二分查找,适合无界数组。
跳表查找 Skip List Search 利用多级索引链表快速定位。
二叉排序树查找 Binary Search Tree Lookup 从根沿 BST 性质逐层比较。
平衡二叉查找树 Self-Balancing BST AVL、红黑树、Splay 等保证 O(log n) 查找。
布隆过滤器 Bloom Filter 用多个哈希函数判断元素是否可能存在;可能误判但绝不会漏判。
计数布隆过滤器 Counting Bloom Filter 支持删除操作的布隆过滤器。
布谷鸟过滤器 Cuckoo Filter 用布谷鸟哈希思想,支持删除且空间效率更好。
倒排索引 Inverted Index 从关键字映射到文档/位置的索引,搜索引擎核心。
正向索引 Forward Index 从文档映射到所含关键字的索引。
签名文件 Signature File 用位图签名加速查找的方法。
位图 / 位向量 Bitmap / Bit Vector 用位数组表示集合,利用位运算加速。
双散列 Double Hashing 冲突时用第二个哈希函数计算步长。
布谷鸟哈希 Cuckoo Hashing 用两个哈希函数,冲突时踢出已有元素重新安放。
罗宾汉哈希 Robin Hood Hashing 开放定址变体,通过比较探测距离实现更均匀分布。
一致性哈希 Consistent Hashing 减少增删节点时重新映射的数据量,用于分布式缓存。
布谷鸟一致性哈希 Cuckoo Consistent Hashing 一致性哈希和布谷鸟哈希结合的分布式方案。
跳表哈希 Hopscotch Hashing 结合开放定址和链地址,通过邻域改善缓存性能。

8.6 排序算法补充

中文名称 英文术语 说明 重点
逆序对 Inversion 序列中 i < j 但 ai > aj 的 (i, j) 对;排序即消除逆序对。
归并段 Run 归并排序或外部排序中的有序子序列。
多路归并 K-way Merge 同时合并 k 个有序序列。
归并树 Merge Tree / Tournament Tree 用树形结构实现多路归并的胜者/败者树。
胜者树 Winner Tree 选择较小元素作为胜者上浮的归并树。
败者树 Loser Tree 记录败者、胜者上浮的归并树,重构更高效。
置换-选择排序 Replacement-Selection Sort 用堆在内存中生成更长的初始归并段。
最佳归并树 Optimal Merge Tree 哈夫曼树应用于多路归并,最小化磁盘 I/O。
外部排序 External Sorting 数据不能一次全部装入内存时,分批排序并归并。
地精排序 Gnome Sort / Stupid Sort 简化版的插入排序,只有相邻交换。
鸡尾酒排序 Cocktail Sort / Bidirectional Bubble Sort 冒泡排序的变体,双向交替扫描。
煎饼排序 Pancake Sorting 只能用反转前缀的操作排序。
睡眠排序 Sleep Sort 利用多线程/协程的睡眠时间差异排序(仅用于趣味展示)。
蒂姆排序 Timsort 结合归并排序和插入排序的自适应排序,Java 和 Python 默认排序。
内省排序 Introsort 快速排序 + 堆排序 + 插入排序的混合算法,C++ std::sort 使用。
平滑排序 Smoothsort 堆排序的变种,接近有序时接近 O(n)。
耐心排序 Patience Sorting 用一系列堆栈分区,最长递增子序列辅助。
奇偶排序 Odd-Even Sort 并行排序算法,交替比较奇偶相邻对。
样本排序 Samplesort 快速排序和归并排序的混合,用样本确定分区。
基数排序 LSD / MSD LSD / MSD Radix Sort 从最低位/最高位开始的基数排序。

8.7 算法设计与复杂度补充

中文名称 英文术语 说明 重点
NP 完全问题 NP-Complete Problem 能在多项式时间内验证解,所有 NP 问题都可归约到它。
NP 难问题 NP-Hard Problem 至少与 NP 问题难度相当,未必在 NP 中。
P 问题 P (Polynomial Time) 可在多项式时间内求解的问题。
归约 Reduction 将一个问题转换为另一个问题,以证明难度。
摊还分析 Amortized Analysis 分析操作序列的平均代价而非单次最坏代价。
聚集法 / 记账法 / 势能法 Aggregate / Accounting / Potential Method 摊还分析的三种经典方法。
下界 Lower Bound 问题复杂度的理论上限下确界。
渐近记号 Asymptotic Notation 大 O、Ω、Θ、o、ω,描述函数增长率。
大 O 记号 Big-O Notation (O) 渐近上界。
大 Ω 记号 Big-Omega Notation (Ω) 渐近下界。
大 Θ 记号 Big-Theta Notation (Θ) 渐近紧确界。
小 o 记号 Little-o Notation (o) 非紧确上界(忽略常数因子)。
小 ω 记号 Little-omega Notation (ω) 非紧确下界(忽略常数因子)。
时间复杂度常数因子 Constant Factor 记号中省略的常数系数。
主定理 Master Theorem 分治法递归时间复杂度的求解公式。
主方法 Master Method 使用主定理求解递归式的方法。
递归树 Recursion Tree 将递归分解为树形结构,分析每层代价总和。
代入法 Substitution Method 猜测并归纳证明递归解。
记忆化搜索 Memoization 用缓存存储已计算子问题结果,是自顶向下的 DP。
状态转移方程 State Transition Equation DP 中描述子问题递推关系的方程。
无后效性 No Aftereffect 子问题状态一旦确定就与后续决策无关,是 DP 适用条件。
最优子结构 Optimal Substructure 问题的最优解包含子问题的最优解。
重叠子问题 Overlapping Subproblems 相同的子问题多次出现,DP 通过缓存避免重复计算。
滚动数组 Rolling Array / Space Optimization DP 中只保留必要行/列以压缩空间到 O(n)。
单调队列优化 DP Monotonic Queue DP Optimization 用单调队列降低 DP 转移复杂度。
斜率优化 DP Convex Hull Trick / Slope Optimization 用于优化特定形式的 DP 转移方程。
四边形不等式优化 Quadrangle Inequality Optimization 满足四边形不等式的 DP 可用更优决策单调性优化。
状态压缩 DP State Compression DP / Bitmask DP 用二进制位表示集合状态的 DP。
数位 DP Digit DP 按数位逐一构造,统计满足约束的数字个数。
树形 DP Tree DP 在树上递归进行 DP,通常自底向上或换根。
换根 DP Rerooting DP 改变根节点重新计算以利用父节点信息。
概率 DP / 期望 DP Probability DP / Expected Value DP 将概率或期望作为 DP 求解目标。
区间 DP Interval DP 按子区间递推,合并相邻区间的代价。
背包问题 Knapsack Problem 0/1 背包、完全背包、多重背包等经典 DP 问题。
启发式搜索 Heuristic Search 利用领域知识引导搜索方向。
模拟退火 Simulated Annealing 以一定概率接受差解,模拟物理退火过程跳出局部最优。
爬山算法 Hill Climbing 贪心选择邻域内最优解,容易陷入局部最优。
遗传算法 Genetic Algorithm (GA) 模拟自然选择和遗传机制求解优化问题。
禁忌搜索 Tabu Search 维护禁忌表避免重复搜索,跳出局部最优。
蚁群算法 Ant Colony Optimization (ACO) 模拟蚂蚁觅食寻找最优路径。
粒子群优化 Particle Swarm Optimization (PSO) 模拟鸟群捕食行为的群体智能算法。
对抗搜索 Adversarial Search / Game Theory Search 双方轮流决策的博弈搜索,如 Minimax 算法。
极小化极大算法 Minimax Algorithm 轮流选择使己方最大化对方最小化的策略。
α-β 剪枝 Alpha-Beta Pruning 优化 Minimax,剪去不影响最终决策的分支。
博弈树 Game Tree 表示博弈中所有可能状态和决策的树。
蒙特卡洛树搜索 Monte Carlo Tree Search (MCTS) 通过随机模拟评估节点,用于 AlphaGo 等博弈 AI。
双向 BFS Bidirectional BFS 从起点和终点同时搜索,在中间相遇,显著减少搜索空间。
迭代加深搜索 Iterative Deepening Search (IDS) 逐渐增加深度限制的 DFS,结合 DFS 空间小和 BFS 完备性。
IDA* 算法 Iterative Deepening A* A* 加迭代加深,适合内存受限环境。
随机化算法 Randomized Algorithm 利用随机数以期望方式提高效率或简化实现。
拉斯维加斯算法 Las Vegas Algorithm 总是给出正确解,但运行时间随机。
蒙特卡洛算法 Monte Carlo Algorithm 运行时间固定但有一定概率给出错误答案。
在线算法 Online Algorithm 在没有完整输入时逐步决策,与离线(Offline)对应。
竞争比 Competitive Ratio 在线算法代价与最优离线代价之比的界。
近似算法 Approximation Algorithm 在多项式时间内求出 NP 难问题的近似解。
近似比 Approximation Ratio 近似解与最优解的质量比保证。

8.8 存储与系统相关术语

中文名称 英文术语 说明 重点
缓存 Cache 存储访问更快数据副本的硬件或软件结构。
缓存命中 / 未命中 Cache Hit / Cache Miss 请求数据在/不在缓存中。
缓存淘汰策略 Cache Eviction / Replacement Policy 缓存满时决定移除哪些数据的策略。
LRU Least Recently Used 淘汰最久未使用的项。
LFU Least Frequently Used 淘汰使用频率最低的项。
FIFO 缓存 First-In First-Out Cache 按入队顺序淘汰。
页面置换算法 Page Replacement Algorithm 虚拟内存管理中换出页面的策略。
缺页中断 Page Fault 访问的页不在物理内存中,需调入。
局部性原理 Locality of Reference 时间局部性 / 空间局部性,程序访问地址集中。
时间局部性 Temporal Locality 刚被访问的数据很可能短期内再被访问。
空间局部性 Spatial Locality 刚被访问数据附近的数据很可能被访问。
内存碎片 Memory Fragmentation 空闲内存被分割成小段,无法分配大块。
内部碎片 / 外部碎片 Internal / External Fragmentation 分配单元内部浪费 / 空闲块分散的小片。
伙伴系统 Buddy System 将内存按 2 的幂分割与合并的内存管理算法。
空闲链表 Free List 将空闲内存块用链表管理(隐式/显式)。
垃圾回收 Garbage Collection (GC) 自动回收不再使用的内存空间。
标记-清除 Mark-and-Sweep 先标记可达对象,再清除未标记对象。
标记-整理 Mark-and-Compact 标记后移动存活对象到一端以消除碎片。
复制回收 Copy Collection / Semi-space GC 将存活对象复制到另一半空间,原空间整体清空。
分代回收 Generational Collection 按对象存活时间分为新生代和老年代,分别回收。
引用计数 Reference Counting 记录每个对象被引用的次数,为 0 时回收。
可达性分析 Reachability Analysis 从 GC Roots 向下追踪引用链,不可达的对象判定为垃圾。
页式存储 Paging 内存等分为固定大小的页,解决外碎片。
段式存储 Segmentation 按逻辑段(代码、数据、栈)分配内存。
段页式存储 Segmented Paging 先分段再分页,综合两者优点。
直接映射 Direct Mapped Cache 缓存行与内存地址一一对应的简单映射。
全相联映射 Fully Associative Cache 任意内存块可放入任意缓存行。
组相联映射 Set Associative Cache 缓存分为若干组,每组内全相联映射。
相关推荐
小poop15 小时前
轮转数组:从暴力到最优,一题掌握算法复杂度分析
数据结构·算法·leetcode
wabs66618 小时前
关于图论【卡码网104.建造最大岛屿的思考】
数据结构·算法·图论
冻柠檬飞冰走茶18 小时前
PTA基础编程题目集 7-15 计算圆周率(C语言实现)
c语言·开发语言·数据结构·算法
冻柠檬飞冰走茶1 天前
PTA基础编程题目集 7-13 日K蜡烛图(C语言实现)
c语言·开发语言·数据结构·算法
夜不会漫长1 天前
数据结构:栈和队列(1)
数据结构
青山木1 天前
Hot 100 --- 电话号码的字母组合
java·数据结构·算法·leetcode·逻辑回归
闪电悠米1 天前
力扣hot100-240.搜索二维矩阵2-单调性剪枝详解
数据结构·算法·leetcode·矩阵·哈希算法
雨落在了我的手上1 天前
Java数据结构(九):栈和队列
java·开发语言·数据结构
春生野草1 天前
个人笔记--大顶堆和基数排序
java·数据结构·算法