专栏首页编程珠玑这些算法可视化网站助你轻松学算法

这些算法可视化网站助你轻松学算法

前言

无疑,数据结构与算法学习最大的难点之一就是如何在脑中形象化其抽象的逻辑步骤。而图像在很多时候能够大大帮助我们理解其对应的抽象化的东西,而如果这个图像还是我们自己一点点画出来的,那么无疑这个印象是最深刻的了。没错,今天给大家分享的就是算法可视化的网站。

Data Structure Visualizations

网站地址为:

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

目前已经有很多常用的数据结构与算法的可视化,例如常见的栈,队列,递归,二叉树等等:

Data Structure Visualizations

我们点一个二叉查找树进去看看:

二叉查找树

开始时,是一片空白,左上角有几个按钮,为insert,delete,find,print,分别用于二叉查找树的插入,删除,查找和遍历。而这些过程的每一步都在你的掌控之中,你可以看到每一个节点是如何插入或者删除的。

二叉查找树

还有很多其他算法的可视化,非常简洁直观,值得一试。

该网站特点:

  • 算法可视化
  • 界面简洁直观
  • 过程可控制

VisuAlgo

网址地址为:https://visualgo.net/zh/。这个网站涉及的算法就更加全面了。从首页就可以看出来不一样了,不仅支持多种算法可视化,还支持搜索。

VisuAlgo

而它除了提供和前面一个网址类似的算法动画以外,还提供大量的文字讲解:

VisuAlgo

而在执行动画的时候,旁边仍然会有文字描述当前步骤,并且左下角还有算法复杂度的注释说明。

堆排序

该网站特点

  • 算法可视化
  • 文字讲解
  • 复杂度备注
  • 图形可操控调整

algorithm-visualizer

网址地址:https://algorithm-visualizer.org/ 它支持的算法种类也很多,除此之外,它还提供java,c++,js代码。而控制台也输出着整个过程来帮助你理解算法。

algorithm-visualizer

来看一个冒泡排序:

bubble sort

该网站特点

  • 算法可视化
  • 有代码
  • 有控制台输出帮助理解
  • 算法种类丰富

本文分享自微信公众号 - 编程珠玑(shouwangxiansheng),作者:守望先生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 常见linux命令介绍-sed

    sed(Stream EDitor,流编辑器)是文本处理中常用的工具,能够使用正则表达式,功能不可小觑。

    编程珠玑
  • 如何在浏览器中快速切换搜索引擎

    如果已经使用了默认的Google,又想切换到stackoverflow,该怎么办呢?

    编程珠玑
  • ls命令常见实用用法

    ls(list directory contents,列出目录内容)命令是linux最常用的命令之一,通过man ls可以看到,ls的参数很多,但是本文不准备列...

    编程珠玑
  • 如何实现机器学习算法

    在代码中实现一个机器学习的算法能够使你更加了解该算法以及其工作机理。

    CJ
  • 2.1 程序的灵魂

    广义地说:为解决一个问题而采取的方法和步骤,就称为“算法”。计算机算法可以分为两大类:数值运算算法和非数值运算算法

    闫小林
  • 算法的描述与分析

    在用计算机解决实际问题的过程中,数据结构与算法是相辅相成、缺一不可的两个方面:数据结构是算法处理的对象,也是设计算法的基础,一个具体问题的数据在计算机中往往可以...

    ianzhi
  • 掌握这 10 大算法,就可以主宰世界!

    2、确切性,算法的每个步骤都必须确切定义。 3、可行性,特定算法须可以在特定的时间内解决特定问题。

    Java技术栈
  • 涨姿势咧~主宰这个世界的 10 大算法是哪些

    Reddit有篇帖子介绍了算法对我们现在生活的重要性,以及哪些算法对现代文明所做贡献最大。这个表单并不完整,很多与我们密切相关的算法都没有提到,如机器学习和矩阵...

    芋道源码
  • 写算法代码的一些教训

    如11点多朋友圈内留言,简单总结了下近两周写的代码及今天调试的心得。尽管写过一些代码,也有一些经验,但是感觉自己写代码还是小学生,该走的坑一点也没少。

    double
  • 让程序员走遍天下都不怕的十个算法

    简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。

    IT大咖说

扫码关注云+社区

领取腾讯云代金券