动画可能是解释算法最直观易懂的方式,此前已经有不少这方面的工作。比如:旧金山大学David Galles的Data Structure Visualizations,俄勒冈州立大学Mike Rosulek用Vamonos生成的演示案例。当年我学数据结构和算法的时候,要有这些好东西,生活该是多么美妙。
现在,Cyan(一家创新的SDN公司)的工程师Duncan Meech开发了一个网站Algomation,看上去是个动画解释算法的集大成之作,不仅可以演示已有算法,还支持用户自己生成的新算法,非常强大。大家可以去感受一下。
技术方面,网站是MEAN架构,NodeJS/Express+MongoDB,托管在Heroku上。客户端用JavaScript (es5),使用了jQuery 2.x, UnderscoreJS和ACE Code editor。生成算法中的yield point使用了Facebook开源的Regenerator项目。
图算法使用了springyjs的变种(force directed graph)和dagre(directed graph)。
图和布局API是作者自己开发的。
另请参考Hacker News上的讨论。