对于「算法」的第一印象,我相信大部分人都是同样的,就是一个“难”字了得。html
而我比较特殊,个人第一印象、第二印象以致第 N 印象都以为很难,因此为了更好的学习和理解算法,我千金一掷一下买了一堆的算法书,有图为证:算法
但说实话,效果不是很好,因而磊哥就琢磨有没有更简单的学习算法的方法?没想到还真被我找到了,真实应了那句老话“瞎猫碰到死耗子”,呸、不对,是“苦心人天不负”。数组
那究竟如何轻松的学习算法呢?答案就是下面要介绍的这几个网站。数据结构
有了这几个网站就可让你以动画的形式,看到算法的具体执行过程和数据的具体结构,还有算法的文字讲解以及算法的具体实现代码,接下来一块儿来看吧。工具
一个数据可视化和算法可视化的网站,用它能够生成各类各样的数据结构,模拟它们添加和删除的过程,并且还能够用它来演示算法的执行过程。学习
好比,咱们用它来模拟一个二叉搜索树,以下图所示:测试
咱们再用它来演示一下快速排序算法,以下图所示:动画
Data Structure Visualizations 包含了不少的内容,如:常见的数组、链表、队列、二叉搜索树、红黑树、各类排序等,以下图所示:网站
www.cs.usfca.edu/~galles/vis….net
此网站包含了更多的算法,这个从首页就能够看出来,不只如此,它还支持关键字检索,以下图所示:
此网站除了能够以动画的方式演示算法以外,还包含了算法的文字讲解,以下图所示:
接下来咱们演示一下冒泡排序的执行过程,以下图所示:
此网站也支持不少算法,而且此网站提供算法的具体代码实现,它支持的语言有:Java,C++,JS 等,还有控制台也会输出整个执行的过程,能帮你更好的理解算法,以下图所示:
咱们用它来演示一下冒泡排序的执行过程,以下图所示:
有了这些可视化工具以后,咱们就能够更简单的学习算法了,这三个网站各有春秋,你能够使用 Data Structure Visualizations 来了解数据结构,使用 VisuAlgo 和 algorithm-visualizer 来查看算法的具体执行过程,并使用 algorithm-visualizer 来查看算法的具体实现代码,真是很是方便,赶快去试试吧。
关注公众号「Java中文社群」回复“干货”,获取 50 篇原创干货 Top 榜。