数据结构与算法可视化交互演示网站及支持算法全清单
网站地址:
数据结构和算法光看文字描述往往不够直观,该网站把两者以可视化组件的方式展示在浏览器里,交互式操作,无需本地搭建环境。
这个网站怎么用
打开页面后是介绍页,说明了使用方式。点击页面左侧的 "Algorithms" 按钮可以查看并选择所有支持演示的数据结构和算法。
实际操作示例,下面是一个 B+ 树的演示视图:
已实现的数据结构和算法列表
以下是该网站目前已支持演示的数据结构和算法,按分类罗列如下:
- 基本结构(Basics)
- 栈:数组实现(Stack: Array Implementation)
- 栈:链表实现(Stack: Linked List Implementation)
- 队列:数组实现(Queues: Array Implementation)
- 队列:链表实现(Queues: Linked List Implementation)
- 递归算法(Recursion)
- 递归阶乘(Factorial)
- 字符串递归反转(Reversing a String)
- N-皇后问题(N-Queens Problem)
- 索引(Indexing)
- 排序列表的二分查找和线性查找(Binary and Linear Search (of sorted list))
- 二分搜索树(Binary Search Trees)
- 自平衡二叉查找树(AVL Trees (Balanced binary search trees))
- 红黑树(Red-Black Trees)
- 伸展树(Splay Trees)
- 拉链法哈希表(Open Hash Tables (Closed Addressing))
- 开地址法哈希表(Closed Hash Tables (Open Addressing))
- 基于桶的开地址法哈希表(Closed Hash Tables, using buckets)
- 前缀树(Trie (Prefix Tree, 26-ary Tree))
- 基数树(Radix Tree (Compact Trie))
- 三分查找树(Ternary Search Tree (Trie with BST of children))
- B-树(B Trees)
- B+树(B+ Trees)
- 排序算法(Sorting)
- 冒泡排序(Bubble Sort)
- 选择排序(Selection Sort)
- 插入排序(Insertion Sort)
- 希尔排序(Shell Sort)
- 归并排序(Merge Sort)
- 快速排序(Quick Sort)
- 比较排序(Comparison Sorting)
- 桶排序(Bucket Sort)
- 计数排序(Counting Sort)
- 基数排序(Radix Sort)
- 堆排序(Heap Sort)
- 堆类数据结构(Heap-like Data Structures)
- 堆(Heaps)
- 二项队列(Binomial Queues)
- 斐波那契堆(Fibonacci Heaps)
- 左倾堆(Leftist Heaps)
- 倾斜堆(Skew Heaps)
- 图算法(Graph Algorithms)
- 广度优先搜索(Breadth-First Search)
- 深度优先搜索(Depth-First Search)
- 连通分量(Connected Components)
- Dijkstra 最短路径(Dijkstra's Shortest Path)
- Prim 最小生成树(Prim's Minimum Cost Spanning Tree)
- 基于入度数组的拓扑排序(Topological Sort (Using Indegree array))
- 基于深度优先的拓扑排序(Topological Sort (Using DFS))
- Floyd-Warshall 全源最短路径(Floyd-Warshall (all pairs shortest paths))
- Kruskal 最小生成树(Kruskal Minimum Cost Spanning Tree Algorithm)
- 动态规划(Dynamic Programming)
- 斐波那契数列(Calculating nth Fibonacci number)
- 完全背包问题(Making Change)
- 最长公共子序列(Longest Common Subsequence)
- 几何算法(Geometric Algorithms)
- 二维旋转和缩放矩阵(2D Rotation and Scale Matrices)
- 二维旋转和平移矩阵(2D Rotation and Translation Matrices)
- 二维坐标空间变更(2D Changing Coordinate Systems)
- 三维旋转和缩放矩阵(3D Rotation and Scale Matrices)
- 三维旋转和平移矩阵(3D Changing Coordinate Systems)
- 其他(Others …)
- 不相交集(Disjoint Sets)
- 霍夫曼编码(Huffman Coding,Java 实现)
算法类型覆盖面比较全:从基础数据结构、树形结构、排序,到图算法、动态规划和几何算法都有对应演示。适合在理解算法过程、调试实现或备课讲稿时作为辅助工具。