可视化数据结构以及算法演示工具

文摘   2024-08-09 20:01   北京  

这次给大家推荐一个在线的可视化工具,它可以交互式地演示各种数据结构和算法。

网站地址:https://www.cs.usfca.edu/~galles/visualization/about.html

我们只需要一个浏览器,就可以通过实际操作的方式理解复杂的数据结构和算法。开该网站之后,可以看到一个介绍页面。



该页面介绍了一些使用方法,我们可以点击页面左侧的“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)

    • 霍夫曼编码(Java实现)

SQL编程思想
专注于数据库领域和SQL编程知识的分享。
 最新文章