上次推文(自学算法?这几个网站和工具你挑一个吧)之后有小伙伴后台留言说,算法难懂、数据结构太抽象不好理解,作为一个过来人,我初学数据结构与算法直接是啃的大学教材,这样的学习方式不是适合所有人。
尤其是编程基础比较差的同学,后来我找到了「捷径」学习方法,如果算法和数据结构能够以动画的形式呈现,那该多好。
这就是算法可视化,下面就来分享几个关于算法和数据结构可视化的网站和项目。
Data Structure Visualizations
这个网站大的特点就是对数据结构的展示。你可以直观的查看基础数据结构,比如数组、链表、队列、二叉树等的创建、删除、查找过程,都是以动画的形式展现,并且这个过程可以参与交互的,比如插入一个数字到二叉搜索树,你可以控制输入参数,直观查看各种数据结构的构造和删除过程。
用动画和交互的方式帮助加深对各种数据结构的理解。
链接:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
visualgo
这也是一个数据结构和算法动态可视化网站,大的优点是支持中文,并且支持对算法的详细说明和讲解,也可以查看算法的执行过程。
链接:https://visualgo.net/zh
algorithm-visualizer
又一个算法可视化网站,这个网站的特点是界面看起来比前两个清爽,不过不支持中文,这个也不是什么大问题,主要是它提供了算法实现代码,并且可以支持Java、JS、C++等多种语言,并且执行过程和速度可控制,还能暂停播放,在控制台也能看到算法执行输出的中间结果,我感觉用起来还是比较舒服。
链接:https://algorithm-visualizer.org/
算法动画图解
上面介绍的是一些可视化网站,算法图解还要推荐吴师兄的算法动画开源项目,这个项目致力于动画图解算法,把解法按 LeetCode 题号排序,用动画的形式呈现解题目的思路,目前已经完成了大部分 LeetCode 原题的动画题解展示,动画制作和整理非常用心,如果哪天刷到一道难以理解的题,不妨来这个项目找找灵感,下面是部分题解动画截图展示。
链接:https://github.com/MisterBooo/LeetCodeAnimation
今天分享就这么多,算法可视化,算法不可怕。