好家伙,被我发现了个数据结构与算法可视化网站!

简介: 今天我就把自己在学数据结构与算法时,用到可视化网站分享出来。

大家好,我是小林。

之前写的这篇文章「女朋友问我:为什么 MySQL 喜欢 B+ 树?我笑着画了 20 张图],其中里面包含了很多数据结构的动图,有很多读者问我是怎么做的。

事实上,我并没有做算法动图,都是我在一个算法动图网站的截的 GIF 图。网上有很多这类数据结构与算法可视化的网站,能够自己输入数据,然后看对应的数据结构/算法的动图,能够很好地帮助我们理解数据结构与算法。所以,今天我就把自己在学数据结构与算法时,用到可视化网站分享出来。

86.png


Structure Visualization


我之前那篇文章就是在 Data Structure Visualization 网站做的动图,这个网站支持很多种数据结构的动图演示。址如下https://www.cs.usfca.edu/~galles/visualization/因为网站是国外做的,所以实际上是英文来了,我为了方便大家看,所以翻译成了中文。

该网站支持堆、栈、队列、列表、阶乘、反转字符串、N-皇后、排序、二叉树、AVL树、红黑树、B/B+树、哈希表、图、动态规划等等可视化演示,基本都是我们很常见的数据结构与算法。接下来,我以平衡二叉树作为动图演示例子,如下动图:image.gif


我们可以自己随意插入、删除、查找数据,也可以自定义动图的播放速度,甚至可以一步一步的查看增删查的过程。

Data Structure Visualization 网站比较可惜的地方是,动图演示的过程没有对应的代码演示。


VisuAlgo


VisuAlgo 也是一个优秀的数据结构与算法可视化网站,网站可以支持中文显示。地址:https://visualgo.net/

81.png

VisuAlgo  网站主页显示的数据结构不多,但是并不意味它只支持显示出来的,如果你想学习的数据结构并没有在主页中,可以通过搜索框来查找:

80.png

接下来,我演示下快排算法的动图演示:

可与看到,在动图演示的过程,右下角也有对应的代码执行过程,这样我们可以很清晰的知道代码每一步的过程,非常便于我们的理解,再也不用通过打 log 来看代码怎么执行的。注意,大家在看代码执行过程的时候,建议使用英文,如果使用中文的话,演示的代码也会被翻译成中文:

78.png


Algorithm Visualizer


Algorithm Visualizer 是强大的算法可视化工具,它不一样的地方在于,它支持 C++、Java、JavaScript 编程语言,是一个不仅能看动图,也能自己编程的网站。址:https://algorithm-visualizer.org/

网站的主页长下面这样:

左半部分主要是支持的算法,中间部分是可视化动图,右半边就是提供的算法代码实例,这部分代码我们是可以修改的。我以二叉搜索树的插入为例子,演示一下它的动图效果:image.gif

Big-O Cheat Sheet


有时候如果我们忘记某个数据结构的时间复杂度,我们可以在 Big-O Cheat Sheet 网站查:地址:https://www.bigocheatsheet.com/

Big-O Cheat Sheet 汇总了常见数据结构的增删改查的时间复杂度,表格做的很清晰:

345.png346.png

今天就分享到这啦,做个小结。Data Structure Visualization 网站适合我们快速熟悉一个数据结构的增删查,因为我们可以直接在网页上自己插入、删除、查找数据,比较可惜的是,该网站没有代码过程的演示。VisuAlgo 和 Algorithm Visualizer 网站都是可以边看数据结构/算法的动图演示,边看代码的执行过程。

相关文章
|
2月前
|
人工智能 算法 数据可视化
路径规划最全综述+代码+可视化绘图(Dijkstra算法+A*算法+RRT算法等)-2
路径规划最全综述+代码+可视化绘图(Dijkstra算法+A*算法+RRT算法等)-2
208 0
|
3月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
63 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
2月前
|
存储 人工智能 算法
路径规划最全综述+代码+可视化绘图(Dijkstra算法+A*算法+RRT算法等)-1
路径规划最全综述+代码+可视化绘图(Dijkstra算法+A*算法+RRT算法等)-1
70 0
|
1天前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
31 13
|
7天前
|
机器学习/深度学习 算法 数据可视化
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
13 0
|
7天前
|
数据可视化 算法 数据挖掘
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
PYTHON实现谱聚类算法和改变聚类簇数结果可视化比较
|
28天前
|
存储 算法 搜索推荐
【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)
【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)
|
1月前
|
存储 缓存 算法
【数据结构与算法】【小白也能学的数据结构与算法】递归 分治 迭代 动态规划 无从下手?一文通!!!
【数据结构与算法】【小白也能学的数据结构与算法】递归 分治 迭代 动态规划 无从下手?一文通!!!
|
28天前
|
存储 算法 Java
Java数据结构与算法-java数据结构与算法(二)
Java数据结构与算法-java数据结构与算法
82 1