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

小林coding

共 1698字,需浏览 4分钟

 ·

2022-01-02 08:49

大家好,我是小林。

之前写的这篇文章「女朋友问我:为什么 MySQL 喜欢 B+ 树?我笑着画了 20 张图],其中里面包含了很多数据结构的动图,有很多读者问我是怎么做的。
事实上,我并没有做算法动图,都是我在一个算法动图网站的截的 GIF 图。
网上有很多这类数据结构与算法可视化的网站,能够自己输入数据,然后看对应的数据结构/算法的动图,能够很好地帮助我们理解数据结构与算法。
所以,今天我就把自己在学数据结构与算法时,用到可视化网站分享出来。

Structure Visualization

我之前那篇文章就是在 Data Structure Visualization 网站做的动图,这个网站支持很多种数据结构的动图演示。址如下
https://www.cs.usfca.edu/~galles/visualization/
因为网站是国外做的,所以实际上是英文来了,我为了方便大家看,所以翻译成了中文。
该网站支持堆、栈、队列、列表、阶乘、反转字符串、N-皇后、排序、二叉树、AVL树、红黑树、B/B+树、哈希表、图、动态规划等等可视化演示,基本都是我们很常见的数据结构与算法。
接下来,我以平衡二叉树作为动图演示例子,如下动图:
我们可以自己随意插入、删除、查找数据,也可以自定义动图的播放速度,甚至可以一步一步的查看增删查的过程。
Data Structure Visualization 网站比较可惜的地方是,动图演示的过程没有对应的代码演示。

VisuAlgo

VisuAlgo 也是一个优秀的数据结构与算法可视化网站,网站可以支持中文显示。
地址:https://visualgo.net/
VisuAlgo  网站主页显示的数据结构不多,但是并不意味它只支持显示出来的,如果你想学习的数据结构并没有在主页中,可以通过搜索框来查找:
接下来,我演示下快排算法的动图演示:

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

Algorithm Visualizer

Algorithm Visualizer 是强大的算法可视化工具,它不一样的地方在于,它支持 C++、Java、JavaScript 编程语言,是一个不仅能看动图,也能自己编程的网站。址:
https://algorithm-visualizer.org/
网站的主页长下面这样:
左半部分主要是支持的算法,中间部分是可视化动图,右半边就是提供的算法代码实例,这部分代码我们是可以修改的。
我以二叉搜索树的插入为例子,演示一下它的动图效果:

Big-O Cheat Sheet

有时候如果我们忘记某个数据结构的时间复杂度,我们可以在 Big-O Cheat Sheet 网站查:
地址:https://www.bigocheatsheet.com/
Big-O Cheat Sheet 汇总了常见数据结构的增删改查的时间复杂度,表格做的很清晰:

今天就分享到这啦,做个小结。
Data Structure Visualization 网站适合我们快速熟悉一个数据结构的增删查,因为我们可以直接在网页上自己插入、删除、查找数据,比较可惜的是,该网站没有代码过程的演示。
VisuAlgo 和 Algorithm Visualizer 网站都是可以边看数据结构/算法的动图演示,边看代码的执行过程。
如果有更好的推荐欢迎推荐,下次见啦!
图解系列文章:
图解文章汇总
计算机基础学习路线
小林的图解系统,大曝光!
不鸽了,小林的「图解网络 3.0 」发布!
为了拿捏 Redis 数据结构,我画了 40 张图(完整版)

浏览 67
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报