数据结构和算法可视化工具——Data Structure Visualizations

摘要:
正好最近关注到学习数据结构和算法的两个工具,特别好用。第一个工具是数据结构和算法可视化工具——DataStructureVisualizations。该工具由旧金山大学开发,地址:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html它的作用是将数据结构和算法用可视化的方式展现出来,方便我们理解其中的原理。基本上涵盖了我们平时常见的数据结构和算法。上面介绍了可视化工具,下面再介绍一个数据结构和算法的代码库,地址:https://github.com/TheAlgorithms/Pythonhttps://github.com/TheAlgorithms/Javascripthttps://github.com/TheAlgorithms/Javahttps://github.com/TheAlgorithms/C有各种语言的版本。

正好最近关注到学习数据结构和算法的两个工具,特别好用。下面我就分别介绍下这两个工具,各位可以收藏一下,说不定以后能用到。

第一个工具是数据结构和算法可视化工具——Data Structure Visualizations。该工具由旧金山大学开发,地址:

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

它的作用是将数据结构和算法用可视化的方式展现出来,方便我们理解其中的原理。类似的工具还挺多的,我对比了四五个之后,觉得这个是最好的。内容丰富、容易操作、访问速度快且容易理解。虽然网站是英文的,但英文并不多,且都是些容易理解的术语。

下面我就带大家体验简单体验一下该工具如何使用。首先,来看看该工具包含多少内容

数据结构和算法可视化工具——Data Structure Visualizations第1张

这只截取了部分,可以看到其中包含了各种树(二叉搜索树、红黑树、B树)、各种排序(归并排序、快速排序、堆排序)以及各种图算法(最短路径、最小生成树算法)。基本上涵盖了我们平时常见的数据结构和算法。

下面再来看看该工具是如何操作的

数据结构和算法可视化工具——Data Structure Visualizations第2张

上图左边是我用工具建立的一颗红黑树,右边是一颗B+树。可以看到页面上没有过多的冗余信息,只是包含了插入、删除、打印相关的按钮以及选项,学习成本特别低。在做插入和删除时会有相应的动画,来帮助我们了解数据结构本身的原理,下面录了个小短视频让大家体验一下。(这里直接贴视频确实没整明白,放了个链接,大家可以在链接中找到)

红黑树(链接中第一个视频):https://mp.weixin.qq.com/s?__biz=MjM5MjcwMjk4OA==&mid=2247484282&idx=1&sn=36685ee078f892223b2daeb11ead96f9&chksm=a6a3741991d4fd0f33cba3598e50b021ad5cf9a215c00c36f656b2bcd4396804d4b48b73d05d&token=1458642456&lang=zh_CN#rd

B+树(链接中第二个视频):https://mp.weixin.qq.com/s?__biz=MjM5MjcwMjk4OA==&mid=2247484282&idx=1&sn=36685ee078f892223b2daeb11ead96f9&chksm=a6a3741991d4fd0f33cba3598e50b021ad5cf9a215c00c36f656b2bcd4396804d4b48b73d05d&token=1458642456&lang=zh_CN#rd

其实从这里我们也能大概看出红黑树和B+树的一些区别,上图B+树中的元素比红黑树多,然而树的高度却比红黑树低。这一特点就决定了在数据库场景中,不可能用红黑树做索引,那会导致树高度非常高。这种可视化的方式体感很强。

上面介绍了可视化工具,下面再介绍一个数据结构和算法的代码库,地址:

https://github.com/TheAlgorithms/Pythonhttps://github.com/TheAlgorithms/Javascripthttps://github.com/TheAlgorithms/Javahttps://github.com/TheAlgorithms/C

有各种语言的版本。先来看看都包含什么内容

数据结构和算法可视化工具——Data Structure Visualizations第3张

这里只是截取了部分内容,跟可视化工具一样,常见的数据结构和算法基本都包含。

最后,用二分查找的小例子,来将这两个工具结合起来。二分查找算法很简单,它是我出去找工作面试中出现频率最高的一道题。虽然简单但也别小看它,我做面试官的时候,仍然遇到有好多人写不出来。Python版算法库代码地址:

https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py

我自己也实现了一下,代码如下:

数据结构和算法可视化工具——Data Structure Visualizations第4张

二分查找过程如下(链接中第三个视频):

https://mp.weixin.qq.com/s?__biz=MjM5MjcwMjk4OA==&mid=2247484282&idx=1&sn=36685ee078f892223b2daeb11ead96f9&chksm=a6a3741991d4fd0f33cba3598e50b021ad5cf9a215c00c36f656b2bcd4396804d4b48b73d05d&token=1458642456&lang=zh_CN#rd

这里既包含了查找过程,又包含了每一步查找对应的执行代码,非常方便学习。

有可视化工具和代码,再结合原理相信没有学不会的数据结构和算法。希望这两个工具对你有用。

免责声明:文章转载自《数据结构和算法可视化工具——Data Structure Visualizations》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mount 时遇到connection unfused 错误操作利用linux的df和du命令查看文件和目录的内存占用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CA证书安装以及SSLH协议转发

1.安装CA证书           生成一个证书文件 http://127.0.0.1/certsrv/ 申请证书 选择高级证书申请 将之前生成的base64证书文件内容贴进来 ok,完成 挂起的申请—所有任务—颁发 在颁发的证书中可以看到我们已经申请好 的证书。   访问http://127.0.0.1/certsrv/...

GitHub的基本使用

GitHub的基本使用 一、什么是GitHub Github是一个基于git(我所使用的Git版本为:Git_2.11.1_64 (提取码:1i72))的社会化代码分享社区。GitHub的官网地址是https://github.com。 你可以在Github上创建免费的远程仓库(remote repository),分享你的代码,当然也可以关注其他人的代码...

推荐K8s的一键安装和一键升级

centos7 deploy_Kubernetes-v1.15.1 后续脚本更新统一由kkitDeploy项目持续更新相应脚本 请移步至kkitDeploy项目 https://github.com/luckman666/kkitdeploy_server ##################################################...

在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器

配置域名 在阿里云找到主域名   进入主域名之后,右上角添加解析,添加子域名, 记录类型选择cname,主机记录填写子域名的名称,记录值为主域名,至此阿里云已经配置好了。 检查nginx安装 首先检查服务器是否安装nginx:   find / -name 'nginx.conf'  -ls   或者   ps -ef|grep nginx   安装ng...

基于 Nginx 的 HTTPS 性能优化

前言 分享一个卓见云的较多客户遇到HTTPS优化案例。 随着相关浏览器对HTTP协议的“不安全”、红色页面警告等严格措施的出台,以及向 iOS 应用的 ATS 要求和微信、支付宝小程序强制 HTTPS 需求,以及在合规方面如等级保护对传输安全性的要求都在推动 HTTPS 的发展。 虽然 HTTPS 优化了网站访问体验(防劫持)以及让传输更加安全,但是很多网...

swagger 转载:https://www.cnblogs.com/tianshifu/p/7156563.html

使用swagger 生成 Flask RESTful API  什么是REST REST(英文:Representational State Transfer,又称具象状态传输)是Roy Thomas Fielding博士于2000年在他的博士论文 中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。 REST...