← 回到 codebrick.tech 首页

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

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

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

绪论 · 算法分析 (1)

绪论 · 算法分析 步进动画

时间复杂度与空间复杂度

一、线性表 (5)

一、线性表 步进动画

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

一、线性表 步进动画

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

一、线性表 步进动画

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

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

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

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

二、栈、队列和数组 (11)

二、栈、队列和数组 步进动画

顺序栈-入栈、出栈

二、栈、队列和数组 步进动画

共享栈-两栈共享空间

二、栈、队列和数组 步进动画

链栈-入栈、出栈

二、栈、队列和数组 步进动画

链式队列-入队、出队

二、栈、队列和数组 步进动画

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

二、栈、队列和数组 步进动画

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

二、栈、队列和数组 步进动画

应用:括号匹配

二、栈、队列和数组 步进动画

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

二、栈、队列和数组 步进动画

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

二、栈、队列和数组 步进动画

多维数组存储 — 行/列优先 + 反推 n

二、栈、队列和数组 步进动画

特殊矩阵压缩 — 对称/三角/三对角/稀疏

三、串 (2)

三、串 步进动画

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

四、树与二叉树 (11)

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

由遍历序列构造二叉树

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

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

四、树与二叉树 步进动画

树与森林 ↔ 二叉树的转换

五、图 (14)

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

五、图 步进动画

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

六、查找 (12)

六、查找 步进动画

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

六、查找 步进动画

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

六、查找 步进动画

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

六、查找 步进动画

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

六、查找 步进动画

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

六、查找 步进动画

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

七、排序 (11)

七、排序 步进动画

排序算法对比(复杂度 / 稳定性总表)

七、排序 步进动画

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

操作系统概述 (5)

操作系统概述 概念图解

CPU 运行模式(用户态/核心态)

操作系统概述 概念图解

中断与异常(OS 视角)

进程状态 (3)

进程状态 步进动画

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

进程调度 (8)

同步与互斥 (7)

死锁 (2)

内存分配 (6)

内存分配 步进动画

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

页面置换 (6)

页面置换 概念图解

页框分配(驻留集 / 工作集)

页面置换 对比模拟器

页面置换算法对比模拟器

I/O 管理 (3)

文件管理 (7)

磁盘调度 (5)

磁盘管理 (2)

计算机系统概述 (2)

计算机系统概述 概念图解

计算机系统层次结构

数制与编码 (4)

定点乘除法 (3)

浮点数 (3)

运算器 (3)

Cache (6)

主存与虚存 (4)

主存与虚存 概念图解

半导体存储器(SRAM/DRAM/ROM)

主存与虚存 步进动画

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

指令系统 (4)

CPU 数据通路 (6)

CPU 数据通路 概念图解

一条指令在 CPU 里的一生

CPU 数据通路 概念图解

异常与中断(计组视角)

流水线 (5)

总线 (4)

I/O 系统 (6)

I/O 系统 概念图解

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

体系结构 (2)

物理层 (3)

数据链路层 (10)

网络层 (8)

传输层 (7)

应用层 (5)

计算器工具 (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)

前缀和/差分 (1)

前缀和/差分 代码示例

Prefix Sum

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

Trie (1)