8个私藏的数据结构和算法学习站,我贡献出来了
大家好,我是小富~
数据结构和算法是计算机专业的基础课程,更是大厂笔试和面试考察的重点。
对于初学数据结构的小伙伴,大多都会感觉到很难、很抽象,库森大二学数据结构时也是这种感觉。
因为数据结构的描述大多是抽象的形式,而我们习惯使用自然语言表达,很难接受数据结构的抽象表示。
尤其是使用严蔚敏的那本教材,只有伪代码和一堆概念,很容易被绕进去,代码也无法运行,非常不直观。
当然并不是说这本书不好,这本书适合期末考试和考研,想学好数据结构和算法还是要看其他经典书籍,如算法4、算法导论等。
如果有动画能够演示下算法的运行过程,那样理解起来会更容易。
那今天就给大家分享的八个算法可视化和分析网站,可以让你以动画的形式,看到数据的具体结构和算法的运行过程,而且有算法的实现代码和文字讲解,再也不用担心学不好数据结构和算法了。
1、VISUAL GO
直达链接:https://visualgo.net/zh
这是一个数据结构和算法动态可视化的网站,支持多种语言,由新加坡国立大学提供。
内容非常丰富,不仅有排序、链表、哈希表、图等基础内容,还有并查集、线段树、后缀树等进阶内容。
VISUAL GO 提供了多种数据结构和算法的可视化演示效果,通过它可以直观地掌握常见的数据结构、算法的执行过程,还可以自定义数据,效果很直观,对初学者理解和学习算法很有帮助。
下面以冒泡排序为例,看下可视化的效果:
2、Data Structure Visualizations
直达链接: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
Data Structure Visualizations是由美国旧金山大学计算机系出品的数据结构与算法可视化学习网站,通过这个网站可以很清晰地看到整个算法的运行过程。
支持的数据结构也很丰富,有栈、队列、二叉树、红黑树、AVL树、Hash、B树、B+树等
算法有各类排序算法、广度优先搜索、深度优先搜索、最小生成树、N皇后问题等。
演示个红黑树,看看效果,观察它的 Insert 过程:
可以调节动画速度,真的很强大!
3、algorithm-visualizer
直达链接:https://algorithm-visualizer.org/
这是一个讲解各种算法的网站,支持各种代码的,包括js,java和c++
这个网站最大的特点是,不仅有动画的演示,而且控制台会输出整个执行过程,能帮助大家更好地理解算法。
比如,我这里使用java
然后就会在右边出现相关的java代码:
点击这里运行:
4、Vamonos
直达链接:http://rosulek.github.io/vamonos/
有常用的数据结构与算法的演示:栈、队列、二叉树、红黑树、B树、拓扑排序、广度优先算法。
5、BinaryTreeGraph
直达链接:http://520it.com/binarytrees
这是个平衡树可视化网站,有二叉树、AVL树、红黑树、二叉堆的演示。
还有个对应的开源项目,是打印二叉树的,感兴趣的可以看看:https://github.com/CoderMJLee/BinaryTrees
类似的二叉树可视化网站:http://btv.melezinek.cz/home.html
6、btree-js
直达链接:https://yangez.github.io/btree-js/
这是个专门演示B树的网站,我们可以在上面插入自定义的数据来模拟B树的构建过程。
B树也称B-树,它是一颗多路平衡查找树,千万不要以为B树是一种树,B-树是一种树,把B-树读成B减树就很尴尬了
7、bigocheatsheet
直达链接:https://www.bigocheatsheet.com/
这个网站分析了常用算法的时空Big-O复杂性,常见数据结构操作的时间复杂度:
8、Algorithms-DataStructures-BigONotation
直达链接:http://cooervo.github.io/Algorithms-DataStructures-BigONotation/index.html
这是一个可以查看算法分析的网站,但功能远不止这些。
在这个网站上还有数据结构和算法的基础知识,如复杂性如何判断,Java中的ArrayList、Set、Map是用数据结构如何实现的。
End
在看 、 点赞 、 转发 ,是对我最大的鼓励 。
技术书籍公众号内回复[ pdf ] Get 。
面试笔记、springcloud进阶实战PDF,公众号内回复[ 1222 ] Get。
有几个技术群,想进的同学可以加我好友,备注:进群,一起成长。