算法即动画!在线交互式可视化平台,GitHub超2万星
【新智元导读】从文本和静态图像学习算法又无聊又难懂。当我们以编程方式展示算法的时候,由于算法本身和抽象代码的复杂概念,很难想象出要执行的算法的程序。而交互式的在线平台Algorithm Visualizer)可以从代码中可视化算法,从而能够让我们能够以一种更加直观、更加有趣的形式去理解算法。
一图胜千言。亚里士多德认为,人类在各种感觉中最偏重视觉。
视觉信息占全部感觉信息的80%以上。科学家发现,人类和灵长类动物的大脑皮层内有至少32个区域(即占大脑皮层一半以上的区域)参与视觉信息处理。
可视化利用视觉系统来增强人类的智力,让我们更好地理解抽象概念或者过程,比如机器学习中的各种算法。
我们知道,从文本和静态图像来学习算法既枯燥又难懂。当我们以编程方式展示算法的时候,由于算法本身和抽象代码的复杂概念,很难想象出要执行的算法的程序。
这种抽象算法的程序学习不仅涉及代码,还涉及实际运行程序时的日志,因此很多人想方设法为算法生成动画,从而让我们能够以一种更加直观、更加有趣的形式去理解算法。
要实现算法可视化,很难实现像做Excel饼图那样,填入数据然后生成柱状的或者饼状的图形的操作,其中还存在描述行为的逻辑规则。
今天新智元为大家介绍一个名为“算法可视化器(Algorithm Visualizer)”的交互式的在线平台,可以从代码中可视化算法,解决了上述问题。该工具在GitHub上超过2.1万星!
Algorithm Visualizer提供了各种语言的可视化工具,包括JavaScript,Java和C ++。其UI由4个部分组成:工具栏、侧边栏、查看器和编辑器。
工具栏包含用户的配置文件和用于控制可视化的按钮。用户还可以将算法保存到GitHub Gist或在Facebook上分享。
左侧边栏显示了一组公共算法,除了用户的临时文件之外,其他人也提供了这些算法。查看器是实际可视化发生的地方。它还查看算法的描述。最后,编辑器允许用户记下他们自己的算法以进行可视化。
该项目由3个名为算法、跟踪器和算法可视化器的存储库组成。
- “algorithms”存储库包含侧栏上显示的公共算法
- “tracers”存储库包含用每种支持的语言编写的可视化库
- “algorithm-visualizer”存储库包含用React.js编写的前端和用Node.js编写的后端
当后端编译并运行代码时,可视化库会发出更改日志。然后,后端将更改日志传递到前端,前端逐步解释并呈现它,最终我们看到了一个完整的算法实现过程
平台地址:
https://algorithm-visualizer.org
GitHub地址:
https://github.com/algorithm-visualizer/algorithm-visualizer