算法可视化

199 个数据结构与算法 · 3D 动态演示

拖拽旋转视角 · 滚轮缩放

基本

堆栈:数组实现

后进先出,压栈/弹栈均在数组尾部

堆栈:链表实现

后进先出,头插头删的链表栈

队列:数组实现

先进先出,循环数组头尾指针

队列:链表实现

先进先出,尾进头出的链表队列

简单堆栈

基础后进先出结构演示

递归

阶乘

递归展开与回溯累乘

反转字符串

递归调用帧与回溯移动字符

N-皇后问题

回溯逐行试探放置皇后

索引

二分和线性搜索(排序列表)

有序数组上的线性搜索与二分查找

插值搜索

按值比例估算下标,均匀分布 O(log log N)

指数搜索

指数步进找上界 + 二分收尾

斐波那契搜索

黄金分割定位,只用加减不用除法

二叉搜索树

左小右大的二叉查找结构

AVL 树(平衡二叉搜索树)

自动平衡的二叉搜索树

红黑树

染色性质保证平衡的搜索树

展开树

访问即旋转到根的树

开放哈希表(封闭寻址)

冲突链式存储的哈希表

封闭哈希表(开放寻址)

线性探测解决冲突的哈希表

封闭哈希表(使用桶)

定长桶加溢出链的哈希表

Trie(前缀树,26 叉树)

逐字符共享前缀的 26 叉树

基数树(Compact Trie)

路径压缩的紧凑前缀树

B树

多路平衡搜索树

B+树

数据在叶子,链表支持范围查询

线段树(区间和)

区间和查询与点更新 O(log n)

树状数组(BIT)

lowbit 前缀和与点更新 O(log n)

Treap

BST 加随机优先级的平衡树

排序

比较排序(冒泡/选择/插入/壳/归并/快排)

六种经典排序,可任选一种演示

桶排序

分桶排序后按序合并

计数排序

按值计数直接放置

基数排序

从低位起逐位桶排

堆排序

建堆后反复取堆顶

TimSort

自然 run + 插入排序补长 + 归并(Python 内置)

类堆数据结构

堆顶最小的优先队列

二项式队列

二项树森林按进位合并

斐波那契堆

延迟合并的多树堆

左派堆

左倾结构的可并堆

倾斜堆

无条件交换的斜堆

配对堆

多树森林,插入均摊 O(1)

图算法

广度优先搜索

逐层扩展求最短路径

深度优先搜索

一路深入再回溯

连接组件

BFS/DFS 划分连通块

Dijkstra 的最短路径

贪心求单源最短路径

Bellman-Ford 最短路径(负权边)

支持负权边并可检测负环

Prim 的最小成本生成树

从顶点贪心扩展生成树

拓扑排序(使用入度数组)

入度表法拓扑排序

拓扑排序(使用 DFS)

按 DFS 完成时间逆序

Kruskal 最小成本生成树

按边权排序加并查集选边

A* 寻路

f = g + h 启发式搜索最优路径

Dinic 最大流

BFS 分层加 DFS 增广求最大流

强连通分量(Tarjan)

dfn/low 求有向图强连通分量

动态规划

计算第 n 个斐波那契数

自底向上递推斐波那契

做出改变(找零)

最少硬币数找零

最长公共子序列

二维 DP 求最长公共子序列

0/1 背包问题

容量约束下最大化总价值

矩阵连乘

最优括号化使乘法次数最少

最长递增子序列

DP 求最长递增子序列

编辑距离

最少插入/删除/替换操作数

几何算法

二维旋转和缩放矩阵

二维旋转与缩放矩阵

二维旋转和平移矩阵

二维旋转加平移矩阵

二维改变坐标系

二维坐标系变换

三维旋转和缩放矩阵

三维旋转与缩放矩阵

三维改变坐标系

三维坐标系变换

操作系统

FCFS 先来先服务

按到达顺序非抢占调度

SJF 短作业优先

挑选最短作业执行降等待

RR 时间片轮转

固定时间片轮转保证公平

MLFQ 多级反馈队列

多级队列时间片用尽降级

FIFO 页面置换

替换最早装入的页框

LRU 页面置换

替换最久未访问的页面

LFU 页面置换

替换访问次数最少的页面

Clock 页面置换

二次机会时钟扫描算法

SSTF 磁盘调度

优先服务最近磁道请求

SCAN 磁盘调度

电梯算法端部折返扫描

银行家算法

死锁避免的安全序列检测

NRU 页面置换

R/M 位分四类淘汰最低级

C-SCAN 磁盘调度

单向扫描回程不服务

死锁检测

资源分配图环检测

图论补全

SPFA 最短路

队列优化支持负权边

Edmonds-Karp 最大流

BFS 最短增广路求最大流

匈牙利算法

二分图最大匹配

Kosaraju SCC

两次 DFS 求强连通分量

Borůvka 最小生成树

分量贪心合并求 MST

Johnson 全源最短路

重加权消负边 + n 次 Dijkstra

Ford-Fulkerson 最大流

DFS 增广路 + 反向边退流

Push-Relabel 预流推进

局部 push/relabel 求最大流

最小费用最大流

每轮选最便宜增广路

双连通分量

Tarjan 求割点与桥

KM 最大权匹配

顶标 + 相等子图增广

Hopcroft-Karp 匹配

BFS 分层批量增广 O(E√V)

DP 与贪心补全

钢条切割

dp[i]=max(p[i],dp[j]+dp[i-j])

石子合并

区间 DP 枚举切分点

最优二叉搜索树

e[i][j] 加权查找代价最小

树形DP(舞会)

f1/f0 父子互斥后序递推

旅行商(状压DP)

dp[mask][i] 集合压位求最短环

数位DP

f[p][紧][开始] 统计不含 6 个数

活动选择

按结束时间贪心选最多活动

任务调度(贪心)

并查集找最晚截止槽求最大收益

完全背包

物品无限件正扫容量 O(nW)

集合覆盖

贪心 ln n 近似的 NP-难问题

数学与数值

埃氏筛 / 线性筛

质数筛选两种经典实现

快速幂

按二进制位 O(log n) 求幂

Graham 凸包

极角排序 + 单调栈求凸包

高斯消元

消元回代解线性方程组

扩展欧几里得

求 ax+by=gcd(a,b) 整数解

欧几里得算法

辗转相除求最大公约数 + 贝祖系数

矩阵快速幂

按二进制位倍增矩阵,斐波那契 O(log n)

LU 分解(Doolittle)

高斯消元拆出 L/U 矩阵,一次分解多次求解

QR 分解(Gram-Schmidt)

正交化拆 Q·R,解最小二乘与特征值迭代

Cholesky 分解

对称正定矩阵拆 LLᵀ,平方根消元

Strassen 矩阵乘法

7 次乘法替代 8 次,O(n^2.81) 分治

Miller-Rabin 素性检测

费马小定理 + 二次探测的概率判素

Pollard-Rho 因数分解

生日悖论随机序列 + Floyd 判圈找因子

计算几何基础

叉积定向 / 鞋带面积 / 点到直线距离

最近点对

分治 + δ 条带 O(n log n) 求最近距离

半平面交

Sutherland–Hodgman 逐边裁剪凸多边形

FFT 快速傅里叶变换

ω 对称性蝶形分治,卷积 O(n log n)

NTT 数论变换

模素数整数 ω 替代复数,零误差卷积

FWT 沃尔什-哈达玛

纯加减蝶形,异或卷积专属加速器

搜索与字符串结构

跳表 Skip List

多层链表 O(log n) 查找

一致性哈希

哈希环增量迁移

Huffman 编码

频率合并建最优前缀树

Boyer-Moore

坏字符规则跳跃匹配

Rabin-Karp

滚动哈希字符串匹配

Z 算法

O(n) Z 数组求匹配

BF 朴素匹配

逐位对齐逐字符比较 O(nm)

Sunday 匹配

窗口后一位决定跳跃距离

后缀树

全部后缀存一棵树,冲突拆边

后缀数组

倍增法双关键字排序 O(n log n)

后缀自动机

在线加字符的 SAM,状态 ≤ 2n−1

BKDR 哈希

h = h×31 + 字符码位模式可视化

ELF 哈希

移位溢出折叠的 Unix 符号表哈希

LCP 数组

Kasai 借位线性算最长公共前缀

密码学与数据压缩

凯撒密码

字母表平移 k 位的替换密码

维吉尼亚密码

密钥循环参与位移的多表替换

DES

16 轮 Feistel 网络的对称加密

AES

S 盒 + 行移位 + 列混合分组加密

RSA

大素数模幂的公钥加密

Diffie-Hellman 密钥交换

公开信道交换共享密钥

MD5 消息摘要

4 轮×16 步压缩,128bit 摘要

SHA-256 摘要

8 寄存器 64 轮,256bit,比特币 PoW 核心

SM3 国密摘要

P0/P1 双置换 + FF/GG 门,国标 256bit

SM4 国密分组密码

128 位密钥 32 轮 Feistel,国标对称加密

3DES

三把密钥 EDE 串联,168 位有效密钥

RC4 流密码

KSA 打乱 S 盒,PRGA 逐字节密钥流

椭圆曲线群 ECC

mod 17 曲线循环群,倍点加法定群律

ElGamal 加密

离散对数难题 + 随机 k 的概率加密

SM2 国密签名

Schnorr 风格曲线签名,GB/T 32918

ECDH 密钥交换

交换律点乘殊途同归的共享秘密

DSA 数字签名

NIST 双模数(p 大域 + q 子群)签名

ECDSA 签名

比特币/以太坊标准椭圆曲线签名

MurmurHash 散列

乘转异或三连混合,非加密哈希快如闪电

CityHash 散列

Google 4 路并行混合,64bit 吞吐之王

游程编码 RLE

连续相同字符计数的无损压缩

LZ77

滑动窗口三元组压缩

LZ78

动态字典 (索引, 新字符) 压缩

算术编码

区间缩窄逼近熵极限

LZSS

指针与字面量加标志位的 LZ77 改良

DEFLATE

LZ77 + 哈夫曼两级压缩(zip 核心)

Brotli

上下文建模 + 二阶熵编码,HTTP 传输利器

Zstandard

哈希链匹配 + FSE 熵编码,高速高压缩比

汉明码 (7,4)

奇偶校验分组 + 综合征定位自动纠 1 位错

CRC-32

多项式除法求余,以太网/zip 校验标准

Reed-Solomon

GF(2⁸) 多项式编码,CD/QR 码纠错核心

LDPC 低密度校验

稀疏校验矩阵迭代译码,逼近香农极限

机器学习与分布式系统

K 近邻(KNN)

距离最近 K 个样本多数投票

K-Means 聚类

质心迭代收敛的无监督聚类

线性回归

梯度下降拟合直线

决策树(ID3)

按信息增益贪心分裂建树

Raft 共识

选举 + 日志复制的分布式一致性

两阶段提交(2PC)

Prepare 征询 + Commit/Abort 的原子性

逻辑回归

σ(z) 概率输出,梯度下降逼近决策边界

朴素贝叶斯

先验 × 似然,对数相加选最大类

SVM 支持向量机

最大间隔超平面,支持向量定边界

随机森林

双随机采样多树投票聚合

GBDT 梯度提升

每棵树拟合残差,XGBoost 前身

AdaBoost

错分样本权重放大,加权投票

DBSCAN 聚类

密度可达成簇,自动识别噪声

PCA 降维

特征分解取最大方差方向投影

MLP 感知机

2-2-1 网络前向反向解决 XOR

CNN 卷积网络

卷积提特征 + 池化降维

Transformer

自注意力任意词看任意词

Q-Learning

奖励沿状态回传,学出最优策略

Paxos 共识

Prepare/Accept 多数票达成一致

ZAB 协议

zxid 全序广播(ZooKeeper)

Gossip 传播

流言式扩散,无中心全群知情

负载均衡

加权轮询按权重分发请求

令牌桶限流

桶空拒绝 429,削峰填谷

Snowflake ID

41+10+12 位拼出全局唯一 ID

三阶段提交 3PC

CanCommit/PreCommit/DoCommit

TCC 事务

Try 锁定 · Confirm 提交 · Cancel 回滚

Saga 长事务

分步提交失败反向补偿

量子算法

Grover 搜索

振幅放大实现 √N 加速搜索

Shor 质因数分解

量子周期提取破解 RSA

量子退火

隧穿势垒找全局最优

其他

不相交集(并查集)

路径压缩加按秩合并

KMP 字符串匹配

next 前缀表避免回溯匹配

Manacher 回文

线性时间求最长回文子串

AC 自动机

Trie 加 fail 指针多模式匹配