对于「算法」的第一印象,我相信大部分人都是一样的,就是一个“难”字了得。
而我比较特殊,我的第一印象、第二印象以至第 N 印象都觉得很难,所以为了更好的学习和理解算法,我千金一掷一下买了一堆的算法书,有图为证:
但说实话,效果不是很好,于是就琢磨有没有更简单的学习算法的方法?没想到还真被我找到了,真是应了那句老话“瞎猫碰到死耗子”,呸、不对,是“苦心人天不负”。
那究竟如何轻松的学习算法呢?答案就是下面要介绍的这几个网站。
有了这几个网站就可以让你以动画的形式,看到算法的具体执行过程和数据的具体结构,这样真的好接受多了!除此之外,还有算法的文字讲解以及算法的具体实现代码,接下来一起来看吧。
Data Structure Visualization
一个数据可视化和算法可视化的网站,用它可以生成各种各样的数据结构,模拟它们添加和删除的过程,而且还可以用它来演示算法的执行过程。
内容演示
比如,我们用它来模拟一个二叉搜索树,如下图所示:
我们再用它来演示一下快速排序算法,如下图所示:
网站特点
Data Structure Visualizations 包含了很多的内容,如:常见的数组、链表、队列、二叉搜索树、红黑树、各种排序等,如下图所示:
访问地址
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
VisuAlgo
此网站包含了更多的算法,这个从首页就可以看出来,不仅如此,它还支持关键字检索,如下图所示:
此网站除了可以以动画的方式演示算法之外,还包含了算法的文字讲解,如下图所示:
内容演示
接下来我们演示一下冒泡排序的执行过程,如下图所示:
网站特点
-
提供了算法的检索功能 -
更多的算法支持 -
可自定义测试数据 -
文字讲解 -
……
访问地址
https://visualgo.net/zh
algorithm-visualizer
内容演示
我们用它来演示一下冒泡排序的执行过程,如下图所示:
网站特点
-
算法可视化 -
算法的具体实现代码(支持 Java、C++、JS 等语言) -
控制台执行步骤输出(帮助你更好的理解算法) -
……
访问地址
https://algorithm-visualizer.org/
总结
有了这些可视化工具之后,我们就可以更简单的学习算法了,这三个网站各有春秋,你可以使用 Data Structure Visualizations 来了解数据结构,使用 VisuAlgo 和 algorithm-visualizer 来查看算法的具体执行过程,并使用 algorithm-visualizer 来查看算法的具体实现代码,真是非常方便。
今天的分享就到这里吧,下篇见。
原文始发于微信公众号(五分钟学算法):这 3 个学数据结构和算法的网站,相信你也会喜欢的!