计算机视觉

可视化学算法,这样还不错

2019-08-07  本文已影响3人  有苦向瓜诉说

数据结构和算法的学习是计算机专业的必学科目,还有考研和工作都是要用的。但是对于初学者来说,理解起来又十分的抽象。想我当年大二的时候,就经常被算法各种问题困扰(其实现在也是),特别是算法的课后作业,经常要手写各种书上的算法的执行流程,我现在依稀记得手动写过的算法有各类冒泡插入选择快速排序算法,链表队列和栈,二叉树红黑树,以及图的遍历,最短路径等算法。

我们都知道,人的大脑理解特点就是对视觉化的东西比较容易理解,比如一大段文字和一幅图片,如果能描述相同的东西,那我们肯定更愿意看图片对不对。然而,我的课本都是用各种文字和伪代码描述,虽然也有图片,但是根本可以忽略不计,比如一个插入排序,它要搞成这样。

但是我最近在网上找到一个学习算法的网站,可以说要是我早几年看到这个网站,就可以更轻松的学习数据结构和算法了。是的,它就是把各种要学习的算法可视化了,直接以动画的形式展现出来,并且可以自定义数据(这样我的作业就可以快速完成了),每一步都可以自己控制。

这个网站的网址就是 https://visualgo.net/zh

简单给大家演示一下,首先先选择你要可视化的算法,这里大概把大学要学的一些算法都包括进来了,可能还包括一些竞赛要用的算法吧。


我首先选择了这个链表数据类型,看看它是怎么演示这个数据结构的。



首先页面上会有提示,你选择那个具体的实现,比如链表,栈,队列等,这里我选择最常见的链表吧。



然后可以看到一些链表的常见操作,如创建,删除,插入等,这里我选择吧80插入在尾节点前吧。然后重点就来了。

右边有插入的一些伪代码,本来是英文的,给我翻译成中文了,旁边就是这个模拟的过程了,伪代码的执行过程与动画的模拟过程是一致的,感觉很形象。


再来个排序算法看看,毕竟这很可能是第一个学到的算法。一上来我就直接选择最麻烦的快速排序(以前学的最麻烦的算法了)进行一波可视化的演示,不过我不知道怎么把图片给弄成动图的形式,所以有兴趣的自己去网站上看吧。总之,你能看到各个元素具体怎么移动的,还能和伪代码结合起来。

这样可视化起来,不仅初学算法更容易理解算法的执行流程,还能留下更深的印象。不过最好在看完这个可视化模拟后,再在自己的脑海中再来一遍,就理解的更深刻啦。

上一篇下一篇

猜你喜欢

热点阅读