算法与数据结构 术语表

专有名词注释查阅表 | 1 个分类

算法 名词注释查阅表

A

术语英文释义
摊还分析Amortized Analysis评估数据结构上一系列操作的平均代价,不依赖概率,保证对任意操作序列成立
聚合分析Aggregate Method摊还分析的一种方法,计算n个操作的总代价上界T(n),则每个操作摊还代价为T(n)/n
ASLAverage Search Length平均查找长度,衡量查找算法效率的指标,分为查找成功ASL和查找失败ASL
AVL树AVL Tree最早的平衡二叉搜索树,任意节点的左右子树高度差不超过1,查找/插入/删除均为O(log n)

B

术语英文释义
回溯Backtracking系统搜索解空间并在不满足约束时回退的策略,本质是DFS加剪枝,适用于N皇后、子集生成等问题
Bellman-Ford算法Bellman-Ford Algorithm单源最短路径算法,支持负权边,对所有边执行V-1轮松弛,时间O(VE)
大O符号Big-O Notation渐进上界符号,f(n)=O(g(n))表示f(n)的增长速率不超过g(n)的某个常数倍
大Omega符号Big-Omega Notation渐进下界符号,f(n)=Omega(g(n))表示f(n)的增长速率至少为g(n)的某个常数倍
大Theta符号Big-Theta Notation渐进紧界符号,f(n)=Theta(g(n))表示f(n)与g(n)同阶增长
二分搜索Binary Search在有序数组中每次将搜索范围缩小一半的查找算法,时间O(log n)
分支限界Branch and BoundBFS搜索加下界剪枝的策略,适用于TSP、整数规划等优化问题
广度优先搜索BFS按层次逐步扩展的遍历算法,使用队列实现,天然保证无权最短路径
桶排序Bucket Sort将元素分配到有限数量的桶中,桶内单独排序后合并,平均O(n+k)
布隆过滤器Bloom Filter用位数组近似表示集合的概率数据结构,查询O(k),存在假阳性但无假阴性

C

术语英文释义
链表Linked List通过指针连接的离散内存线性数据结构,插入删除O(1),随机访问O(n)
循环链表Circular Linked List尾节点的next指向头节点的链表,适合循环队列等场景
计数排序Counting Sort统计每个值出现次数的非比较排序,时间O(n+k),适用于整数范围有限的场景
竞争分析Competitive Analysis将在线算法代价与最优离线算法代价比较来评估性能,竞争比越接近1越好
连通分量Connected Component无向中的极大连通子,可通过BFS/DFS求解
割点Articulation Point删除该顶点后不再连通的节点,可用Tarjan算法在O(V+E)时间内求解
Bridge删除该边后不再连通的边,判定条件为low[v] > dfn[u]
冒泡排序Bubble Sort相邻比较交换的排序算法,平均O(n^2),稳定,可提前终止优化
鸡尾酒排序Cocktail Sort双向冒泡排序,交替从左到右和从右到左遍历

D

术语英文释义
深度优先搜索DFS沿一条路径尽可能深入再回溯的遍历算法,使用栈/递归实现,适用于环检测、拓扑排序
Dijkstra算法Dijkstra’s Algorithm非负权单源最短路径算法,贪心策略加松弛操作,二叉堆实现O(E log V)
动态规划Dynamic Programming通过记忆化避免重复计算的算法范式,依赖最优子结构和无后效性
动态数组Dynamic Array容量满时自动扩容的数组,append操作摊还O(1)
Degree与顶点关联的边数,有向分为入度和出度
稠密Dense Graph边数接近V^2的,适合用邻接矩阵表示

E

术语英文释义
编辑距离Edit Distance将一个字符串转换为另一个字符串所需的最少操作次数,允许插入、删除、替换
边的分Edge ClassificationDFS中将边分为树边、回边、前向边、横叉边,回边表示存在环

F

术语英文释义
斐波那契堆Fibonacci Heap通过延迟合并和级联剪切实现高效操作的堆,插入O(1)摊还,删除最小O(log n)摊还
Floyd-Warshall算法Floyd-Warshall Algorithm全源最短路径算法,基于DP,时间O(V^3),支持负权边

G

术语英文释义
贪心算法Greedy Algorithm每步取局部最优的算法范式,依赖贪心选择性质和最优子结构
Graph由顶点集V和边集E组成的数据结构,分为有向、无向、加权
邻接矩阵Adjacency Matrix用二维数组adj[i][j]表示顶点i到j的边,适合稠密,空间O(V^2)
邻接表Adjacency List每个顶点维护链表存储邻接点,适合稀疏,空间O(V+E)

H

术语英文释义
哈希表Hash Table通过哈希函数将键映射到数组下标实现O(1)平均查找的数据结构
哈希函数Hash Function将键映射到有限槽位的函数,设计目标是均匀分布、减少冲突
哈希冲突Hash Collision不同键映射到同一槽位的现象,处理方法包括链地址法和开放寻址法
负载因子Load Factor哈希表中元素数量与槽位数的比值alpha=n/m,通常控制在0.75以下
Heap满足堆序性质的完全二叉树,最大堆父节点>=子节点,最小堆反之
堆排序Heap Sort利用堆数据结构排序,先建堆再反复取堆顶,时间O(n log n),空间O(1)
霍尔分区Hoare Partition快速排序的双指针分区方案,从两端向中间扫描交换逆序对
哈夫曼编码Huffman Coding贪心算法构造的最优前缀编码,频率高的字符用短编码

I

术语英文释义
插入排序Insertion Sort将元素逐个插入已排序部分的排序算法,最好O(n),稳定,适合小规模或近乎有序数据
内省排序IntrosortC++ STL的sort实现,先快速排序,递归过深时切换堆排序,小规模切换插入排序
原地排序In-place Sort仅需O(1)额外空间的排序算法

K

术语英文释义
Kruskal算法Kruskal’s Algorithm基于并查集的贪心最小生成树算法,按边权从小到大选取,时间O(E log E)
Kadane算法Kadane’s Algorithm求最大子数组和的线性时间算法,维护当前和与最大和

L

术语英文释义
线性搜索Linear Search逐个比较的朴素查找算法,时间O(n),适用于无序小规模数据
Lomuto分区Lomuto Partition快速排序的分区方案,以最后一个元素为pivot,维护分界指针
最长公共子序列LCS两个序列中最长的不要求连续的公共子序列,DP求解时间O(mn)
最长递增子序列LIS数组中最长的严格递增子序列,O(n log n)解法使用贪心加二分
LRU缓存LRU Cache最近最少使用缓存替换策略,k-竞争,使用哈希表加双向链表实现

M

术语英文释义
主定理Master Theorem分析分治递推式T(n)=aT(n/b)+f(n)的通用定理,分三种情形
归并排序Merge Sort分治排序算法,递归分成两半分别排序后合并,时间O(n log n),稳定
最小生成树Minimum Spanning Tree连通加权无向中权值之和最小的生成树,Kruskal和Prim为经典算法
记忆化搜索Memoization自顶向下的DP实现,用数组/哈希表缓存已计算结果避免重复计算
多重背包Multiple Knapsack第i个物品有s[i]个可用的背包问题,二进制拆分优化至O(nW log S)

N

术语英文释义
NP类Nondeterministic Polynomial Time可在非确定性灵机上多项式时间求解的判定问题,等价于多项式时间可验证
NP完全NP-Complete既在NP中又是NP-Hard的问题,NP中最难的问题
NP困难NP-Hard至少和NP中最难的问题一样难的问题,不一定是NP问题
非比较排序Non-comparison Sort不通过比较元素大小来排序的算法,如计数排序、基数排序,可突破O(n log n)下界

O

术语英文释义
在线算法Online Algorithm在不知道未来输入的情况下逐步做出不可撤销决策的算法
最优子结构Optimal Substructure问题的最优解包含子问题最优解的性质,是贪心和DP正确性的基础
0-1背包0-1 Knapsack每个物品只能选0或1个的背包问题,DP求解时间O(nW),为伪多项式时间

P

术语英文释义
P类Polynomial Time确定性灵机上多项式时间可解的判定问题
Prim算法Prim’s Algorithm从任一顶点出发贪心扩展的最小生成树算法,二叉堆实现O(E log V)
快速排序Quick Sort分治排序算法,选择pivot分区后递归排序,平均O(n log n),原地但不稳定
快速选择Quickselect在无序数组中找第k小元素,基于快速排序分区思想,平均O(n)

R

术语英文释义
基数排序Radix Sort按位排序的非比较算法,从最低位到最高位使用稳定排序,时间O(d(n+b))
递归树Recursion Tree将递推式展开为树形结构分析复杂度的直观工具
松弛Relaxation最短路径算法中的核心操作:若dist[u]+w(u,v)<dist[v]则更新dist[v]

S

术语英文释义
选择排序Selection Sort每轮选出最小元素放到已排序部分末尾的排序算法,时间O(n^2),不稳定
Shell排序Shell Sort间隔递减的插入排序变体,间隔序列选择影响性能
稳定排序Stable Sort相等元素的相对顺序在排序后保持不变的排序算法
SPFA算法Shortest Path Faster Algorithm队列优化的Bellman-Ford,只对发生松弛的顶点邻接边松弛,平均O(E)
强连通分量Strongly Connected Component有向中任意两点互相可达的极大子,Tarjan算法O(V+E)求解
状态压缩DPBitmask DP用整数二进制位表示集合状态,将多维状态压缩为一维的DP技术

T

术语英文释义
拓扑排序Topological Sort对DAG顶点线性排序使每条边(u,v)中u排在v之前,Kahn算法或DFS后序逆序
Treen个节点的有限集合,连通无环,n个节点有n-1条边
二叉搜索树BST左子树所有值<根<右子树所有值的二叉树,查找/插入/删除平均O(log n)
字典树Trie多叉树结构用于字符串集合的高效前缀匹配,查找时间与字符串长度相关
TimsortTimsortPython和Java默认排序算法,结合归并排序和插入排序,最好O(n)最坏O(n log n)
旅行商问题TSP求经过所有城市恰好一次并返回起点的最短回路,NP-Hard问题

W

术语英文释义
无后效性No Aftereffect一旦状态确定,未来决策只依赖当前状态值而不依赖到达路径的性质

X

术语英文释义
小o符号Little-o Notation非紧上界符号,f(n)=o(g(n))表示f(n)的增长速率严格小于g(n)
小omega符号Little-omega Notation非紧下界符号,f(n)=omega(g(n))表示f(n)的增长速率严格大于g(n)

Y

术语英文释义
一致性哈希Consistent Hashing分布式系统中减少节点增减时数据迁移量的哈希方案
优先队列Priority Queue支持按优先级取出元素的抽象数据型,通常用堆实现

Z

术语英文释义
时空权衡Time-Space Tradeoff算法设计中时间与空间此消彼长的关系,常见策略为以空间换时间
自底向上DPBottom-up DP按依赖顺序填表消除递归开销的DP实现方式
并查集Union-Find支持合并集合和查询元素所属集合的数据结构,路径压缩加按秩合并接近O(1)
完全背包Complete Knapsack物品可无限选取的背包问题,内层循环从小到大
核算法Accounting Method摊还分析的一种方法,为不同操作分配不同摊还代价,用存款支付昂贵操作
势能法Potential Method摊还分析的一种方法,定义势能函数将数据结构状态映射为非负实数