← 回到 codebrick.tech 首页

210 个算法可视化, 408 全四科 + 复试机试

从指针级动画到执行驱动可视化, 写代码就能看算法跑起来。

64 数据结构 39 操作系统 45 计算机组成 29 计算机网络 33 复试机试
没有匹配的可视化, 试试别的关键词?

一、线性表 (5)

一、线性表 步进动画

顺序表(数组)—— 插入、删除、按值查找

进入演示 →
一、线性表 步进动画

单链表-头插法、尾插法、插入、删除、逆置

进入演示 →
一、线性表 步进动画

双链表-插入、删除

进入演示 →
一、线性表 步进动画

循环链表-循环单链表、循环双链表

进入演示 →
一、线性表 步进动画

静态链表-基本操作

进入演示 →

一 · 附:链表算法(统一引擎) (1)

一 · 附:链表算法(统一引擎) 步进动画

倒数第 k 个结点(双指针) — 408·2009/42

进入演示 →

二、栈和队列 (9)

二、栈和队列 步进动画

顺序栈-入栈、出栈

进入演示 →
二、栈和队列 步进动画

共享栈-两栈共享空间

进入演示 →
二、栈和队列 步进动画

链栈-入栈、出栈

进入演示 →
二、栈和队列 步进动画

链式队列-入队、出队

进入演示 →
二、栈和队列 步进动画

循环队列-入队、出队、判满判空

进入演示 →
二、栈和队列 步进动画

双端队列-输入受限、输出受限

进入演示 →
二、栈和队列 步进动画

应用:括号匹配

进入演示 →
二、栈和队列 步进动画

应用:表达式求值(中缀转后缀 + 后缀求值)

进入演示 →
二、栈和队列 步进动画

应用:层次遍历(→ 树章节联动)

进入演示 →

三、串 (2)

三、串 步进动画

朴素模式匹配(BF 算法)

进入演示 →
三、串 步进动画

KMP 算法(含 next 数组求解过程)

进入演示 →

四、树与二叉树 (11)

四、树与二叉树 步进动画

前序遍历(递归 + 非递归)

进入演示 →
四、树与二叉树 步进动画

中序遍历(递归 + 非递归)

进入演示 →
四、树与二叉树 步进动画

后序遍历(递归 + 非递归)

进入演示 →
四、树与二叉树 步进动画

层序遍历(BFS)

进入演示 →
四、树与二叉树 步进动画

由遍历序列构造二叉树

进入演示 →
四、树与二叉树 步进动画

线索二叉树-中序线索化、找前驱/后继

进入演示 →
四、树与二叉树 步进动画

二叉排序树(BST)—— 查找、插入、删除

进入演示 →
四、树与二叉树 步进动画

平衡二叉树(AVL)—— 四种旋转(LL/RR/LR/RL)、插入、删除

进入演示 →
四、树与二叉树 步进动画

红黑树-五条性质、插入调整过程

进入演示 →
四、树与二叉树 步进动画

哈夫曼树-构建过程、哈夫曼编码

进入演示 →
四、树与二叉树 步进动画

树与森林 ↔ 二叉树的转换

进入演示 →

五、图 (14)

五、图 步进动画

图的基本概念-有向/无向、度、连通性、强连通分量

进入演示 →
五、图 步进动画

存储结构-邻接矩阵(含度计算)

进入演示 →
五、图 步进动画

存储结构-邻接表(含邻接矩阵↔邻接表互转)

进入演示 →
五、图 步进动画

存储结构-十字链表 & 邻接多重表

进入演示 →
五、图 步进动画

广度优先搜索(BFS)-邻接矩阵/邻接表

进入演示 →
五、图 步进动画

深度优先搜索(DFS)-邻接矩阵/邻接表

进入演示 →
五、图 步进动画

最小生成树-Prim 算法

进入演示 →
五、图 步进动画

最小生成树-Kruskal 算法

进入演示 →
五、图 步进动画

最短路径-BFS 求无权图最短路径

进入演示 →
五、图 步进动画

最短路径-Dijkstra 算法

进入演示 →
五、图 步进动画

最短路径-Floyd 算法

进入演示 →
五、图 步进动画

拓扑排序(BFS入度法 + DFS逆拓扑)

进入演示 →
五、图 步进动画

拓扑序唯一性判定(2024-41 真题)

进入演示 →
五、图 步进动画

关键路径(AOE 网)

进入演示 →

六、查找 (12)

六、查找 步进动画

查找基本概念-ASL、查找成功/失败分析

进入演示 →
六、查找 步进动画

二叉排序树查找(→ 树章节 BST)

进入演示 →
六、查找 步进动画

平衡二叉树查找(→ 树章节 AVL)

进入演示 →
六、查找 步进动画

红黑树查找(→ 树章节 RBT)

进入演示 →
六、查找 步进动画

B 树-插入、删除、查找

进入演示 →
六、查找 步进动画

B+ 树-结构对比展示

进入演示 →
六、查找 步进动画

哈希表-开放定址法(线性探测、二次探测)

进入演示 →
六、查找 步进动画

查找算法分析与对比-ASL 汇总、适用场景

进入演示 →

七、排序 (10)

七、排序 步进动画

堆排序(含建堆过程)

进入演示 →
七、排序 步进动画

归并排序(二路归并)

进入演示 →
七、排序 步进动画

外部排序-多路归并概念展示

进入演示 →

进程状态 (2)

进程状态 步进动画

进程状态转换(五状态/七状态)

进入演示 →

进程调度 (8)

进程调度 步进动画

高响应比优先 HRRN

进入演示 →
进程调度 步进动画

多级反馈队列 MLFQ

进入演示 →
进程调度 对比模拟器

调度算法对比模拟器

进入演示 →

同步与互斥 (4)

同步与互斥 概念图解

同步与互斥概念

进入演示 →
同步与互斥 步进动画

生产者-消费者问题

进入演示 →
同步与互斥 步进动画

读者-写者问题

进入演示 →
同步与互斥 步进动画

哲学家进餐问题

进入演示 →

死锁 (2)

内存分配 (5)

内存分配 步进动画

连续分配(首次/最佳/最坏适应)

进入演示 →
内存分配 步进动画

基本分页(地址变换)

进入演示 →

页面置换 (5)

页面置换 对比模拟器

页面置换算法对比模拟器

进入演示 →

I/O 管理 (2)

文件管理 (4)

磁盘调度 (5)

磁盘调度 对比模拟器

磁盘调度对比模拟器

进入演示 →

磁盘管理 (2)

磁盘管理 概念图解

机械硬盘工作原理

进入演示 →

数制与编码 (4)

数制与编码 步进动画

原码、反码、补码

进入演示 →

定点乘除法 (3)

定点乘除法 步进动画

原码恢复余数除法

进入演示 →

浮点数 (3)

运算器 (3)

Cache (6)

主存与虚存 (3)

主存与虚存 步进动画

虚实地址转换(TLB+页表+Cache)

进入演示 →

指令系统 (4)

CPU 数据通路 (5)

CPU 数据通路 概念图解

一条指令在 CPU 里的一生

进入演示 →
CPU 数据通路 步进动画

单周期数据通路

进入演示 →
CPU 数据通路 步进动画

多周期数据通路

进入演示 →
CPU 数据通路 步进动画

硬布线控制器

进入演示 →
CPU 数据通路 步进动画

微程序控制器

进入演示 →

流水线 (5)

流水线 概念图解

流水线 vs 单周期对比

进入演示 →
流水线 概念图解

流水线数据冒险(动画)

进入演示 →
流水线 步进动画

数据冒险(转发/阻塞)

进入演示 →
流水线 步进动画

控制冒险(分支预测)

进入演示 →

总线 (4)

I/O 系统 (5)

I/O 系统 概念图解

DMA vs 中断 vs 程序查询(动画)

进入演示 →

体系结构 (2)

体系结构 概念图解

数据包的网络之旅

进入演示 →

物理层 (2)

数据链路层 (8)

数据链路层 步进动画

停止-等待协议

进入演示 →
数据链路层 步进动画

CRC循环冗余校验

进入演示 →

网络层 (5)

传输层 (5)

应用层 (1)

计算器工具 (6)

计算器工具 计算器

信道利用率计算器

进入演示 →

栈/队列 (2)

栈/队列 代码示例

BFS Level Order Traversal

BFS 层序遍历二叉树

进入演示 →
栈/队列 代码示例

Valid Parentheses

用栈判断括号字符串是否有效

进入演示 →

(3)

代码示例

BFS Shortest Path

BFS 求无权图最短路径

进入演示 →
代码示例

DFS Graph Traversal

深度优先搜索遍历图的所有节点

进入演示 →
代码示例

Dijkstra Shortest Path

Dijkstra 算法:求单源最短路径

进入演示 →

查找/双指针 (4)

查找/双指针 代码示例

Longest Substring Without Repeating

滑动窗口:找到无重复字符的最长子串

进入演示 →
查找/双指针 代码示例

Remove Duplicates

双指针原地删除有序数组中的重复元素

进入演示 →
查找/双指针 代码示例

Two Sum (Sorted)

双指针法:在有序数组中找到和为目标值的两个数

进入演示 →

BST (1)

BST 代码示例

BST Search & Insert

二叉搜索树:搜索和插入操作

进入演示 →

排序 (5)

排序 代码示例

Bubble Sort

冒泡排序:相邻元素比较交换,每轮冒泡一个最大值

进入演示 →
排序 代码示例

Insertion Sort

插入排序:将元素逐个插入已排序区的正确位置

进入演示 →
排序 代码示例

Merge Sort

归并排序:分治策略,递归拆分再合并有序子数组

进入演示 →
排序 代码示例

Quick Sort

快速排序:选取基准元素,分区后递归排序

进入演示 →
排序 代码示例

Selection Sort

选择排序:每轮找最小值放到已排序区末尾

进入演示 →

动态规划 (3)

动态规划 代码示例

Climbing Stairs

动态规划:每次爬 1 或 2 阶,求到达顶部的方案数

进入演示 →
动态规划 代码示例

Fibonacci (DP)

动态规划:自底向上计算斐波那契数列

进入演示 →
动态规划 代码示例

Fibonacci (递归)

递归求斐波那契数,展示调用树与重复子问题

进入演示 →

并查集 (1)

并查集 代码示例

Connected Components

并查集:求无向图的连通分量数

进入演示 →

矩阵 (3)

矩阵 代码示例

Min Path Sum (DP)

动态规划:从左上到右下的最小路径和

进入演示 →
矩阵 代码示例

Rotate Matrix

原地旋转矩阵:先转置再翻转每行

进入演示 →
矩阵 代码示例

Spiral Matrix

螺旋遍历:按顺时针螺旋顺序遍历矩阵

进入演示 →

(1)

代码示例

Heap Sort

堆排序:利用最小堆依次提取最小值

进入演示 →

二叉树 (3)

二叉树 代码示例

Invert Binary Tree

翻转二叉树:递归交换左右子树

进入演示 →
二叉树 代码示例

Maximum Depth

递归求二叉树的最大深度

进入演示 →
二叉树 代码示例

Tree DFS Traversal

二叉树的前序、中序、后序遍历

进入演示 →

链表 (3)

链表 代码示例

Find Middle Node

快慢指针找链表中点

进入演示 →
链表 代码示例

Merge Two Sorted Lists

合并两个有序链表:双指针依次比较

进入演示 →
链表 代码示例

Reverse Linked List

反转链表:三指针迭代法

进入演示 →

回溯 (2)

回溯 代码示例

Permutations

回溯法生成全排列

进入演示 →
回溯 代码示例

Subsets

回溯法生成所有子集

进入演示 →

前缀和/差分 (1)

前缀和/差分 代码示例

Prefix Sum

前缀和:O(1) 查询任意区间和

进入演示 →

Trie (1)