有了这个开源项目,再也不怕去BAT和字节跳动面试考算法了-程序员宅基地

文导读|   点击标题阅读

互联网寒冬下,程序员如何突围提升自己?

已有 Android 项目集成 Flutter 寻坑记

“37岁,年薪50万,一夜被裁”:伪上班,毁掉了多少中国年轻人

本文转载自大数据文摘(id: BigDataDigest)

GitHub 标星 15K,这个开源项目让算法真的动了起来

640?wx_fmt=png


一门编程语言入门之后,要想进阶,必须学习算法和数据结构。


正常的学习资料是纯文本和静态图。之前文摘菌也推荐过一个开源项目,用Python实现了所有的排序算法,包括插入排序、冒泡排序、快速排序、选择排序、归并排序等。


现在,这些会“动”啦!


这是一个名为Algorithm Visualizer的直观的算法可视化工具,在里面你可以自由选择自己想学习的算法,每个算法它都清晰描绘了其原理和运作过程。


640?wx_fmt=png


目前Algorithm Visualizer 在 GitHub 上已经获得星星数量15048,fork数量为2097.


GitHub地址:

https://github.com/algorithm-visualizer/algorithm-visualizer

演示地址:

https://algorithm-visualizer.org/


algorithm-visualizer用法


下面通过depth limited Search,大概解释一下 Algorithm Visualizer 这个工具:


640?wx_fmt=gif


最左边的为目录区,你可以在这里选择任何你中意的算法,中间就是算法的动态演示区域与日志输出区,其中,日志模式记录每次搜索的过程。


最右边上面有个工具栏,在这里,你可以选择播放或者暂停,甚至还有播放速度,工具栏下面部分就是代码区域,该算法的核心代码都是在这里体现。


640?wx_fmt=png


目前支持的算法非常多包括回溯法、加密算法、动态规划、图搜索、贪婪算法、搜索算法、排序算法等。


另外,文摘菌也多试了两个个算法,结果如下。


640?wx_fmt=gif

二分法检索


640?wx_fmt=gif

泛洪填充算法

.

更多学习和讨论,欢迎加入我们的知识星球,这里有1000+小伙伴,让你的学习不寂寞~·

看完本文有收获?请转发分享给更多人


我们的知识星球第三期开期了,已达到1100人了,能连续做三期已很不容易了,有很多老用户续期,目前续期率达到50%,说明了大家对我们的知识星球还是很认可的,欢迎大家加入尽早我们的知识星球,更多星球信息参见:

欢迎加入Java和Android架构社群

如何进阶成为Java的Android版和架构师?

说两件事

640?wx_fmt=jpeg

微信扫描或者点击上方二维码领取的Android \ Python的\ AI \的Java等高级进阶资源

更多学习资料点击下面的“阅读原文 ”获取

640?wx_fmt=gif

谢谢老板,点个好看↓

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xJ032w2j4cCjhOW8s8/article/details/92262804

智能推荐

「 LaTex 」写论文,修改公式内行距的方法_\vspace设置段落行距-程序员宅基地

文章浏览阅读3.4k次。一.前言在官网给的LaTex模板里作业,有时会遇到带有分式或大括号的公式顶端重叠的问题,下面给出解决方法。二.技术实现使用临时修改行距指令\vspace{0.5ex}*{0.5ex}中的数字可以任意调整。三.实例展示修改前如图:修改后如图:*亲测有效..._\vspace设置段落行距

eclipse jsEclipse javascript编辑器-程序员宅基地

文章浏览阅读7.2k次,点赞17次,收藏15次。Eclipse JavaScript插件前言一、JsEclipse是什么?二、使用步骤1.下载2.安装插件总结前言免费下载jseclipse插件,看不惯那些赚积分的。关键字:eclipse、eclipse插件、eclipse js插件、eclipse js编辑器、eclipse jsEclipse、jseclipse、JavaScript编辑器、好用的JavaScript编辑器一、JsEclipse是什么?当然是*.js的编辑器了,代码提示,关键字高亮,重要是好湿,啊不,好使。二、使用步骤_jseclipse

02.Web安全基础、第二章常见Web漏洞解析、第二节CSRF-程序员宅基地

文章浏览阅读68次。目录: 01 CSRF是什么 02 CSRF原理分析 03 漏洞演示 view-source:网址 查看源代码 ..._web漏洞深度剖析第二章的javascript

Filter Concatenation理解_filter conca- tenation-程序员宅基地

文章浏览阅读9.6k次,点赞13次,收藏19次。学习深度学习,有几篇论文大多数人都会读到。其中一篇就是《Going deeper with convolutions》,google在这片论文中提到了一个inception模型(示意版,简单模式):对于我这种基础知识不牢靠,学习时间非常短的人来说,对深度神经网络的理解还没到位,经常看论文一知半解,很多概念搞不清楚。看到上面这个图,我就产生了一个疑问:上图中的Filter C_filter conca- tenation

MyBatis注解方式批量插入操作_mapper批量插入注解-程序员宅基地

文章浏览阅读1.7k次。转载自:https://blog.csdn.net/u011974797/article/details/81873384 @Insert({ "<script>", "insert into table_name(column1, column2, column3) values ", "<foreach collection='t..._mapper批量插入注解

Android快速实现扫描二维码功能_快速扫码脚本csdn-程序员宅基地

文章浏览阅读2.4k次。先去把工程文件下下载github然后找到lib-zxing这个文件夹在AndroidStudio中导入模块选择刚刚那个文件夹即可把这些参数改成和工程一样即可然后开始编译中间还处理一些import包的问题,删掉然后重新导入即可等到build完全没有错误即可代码应用 /** * 跳转到扫码界面扫码 */ private void goScan(){ startActivityForResult(new Intent(this, CaptureA_快速扫码脚本csdn

随便推点

Linux系统编程_信号_linux开发板发送ctl+d信号当前终端-程序员宅基地

文章浏览阅读249次。1 信号的概念基本属性信号4要素2 产生信号5种方法kill函数alarm函数setitimer函数3 信号集操作函数信号屏蔽字未决信号集4 信号的捕捉注册信号捕捉函数_linux开发板发送ctl+d信号当前终端

ip层本机接受数据包处理_对于递交给本机的数据包-程序员宅基地

文章浏览阅读514次。当数据包的目的地址是本机是,Ip_rcv_finish函数就会将skb-&gt;dst-&gt;input函数指针初始化为ip_local_deliver,ip层本地发送数据包也分为两个阶段分配分别有两个处理函数:ip_local_deliver和ip_local_deliver_finish。本地转发数据包的首要任务是重组数据包,前送的数据包可以不要重组,前送可以转发每个分片数据包。一、本地..._对于递交给本机的数据包

打开cmd的四种方式和管理员运行以及常用Dos基本命令_资源管理器的地址栏前面加上cmd路径-程序员宅基地

文章浏览阅读2.3k次。1.打开cmd的方式1.开始--系统--命令提示符2.Win + R 键,输入cmd 打开控制台3.在电脑桌面任意的空白处,按住shift键 + 鼠标右键点击-->在此处打开Powershell命令行窗口4.资源管理器的地址栏前面加上cmd路径5.管理员身份运行:开始--系统--命令提示符--右键选择管理员身份运行2.常用的Dos命令#切换盘符 直接输入: D: 或 E: (英文:),即可跳转到D盘或E盘#查看当前目录..._资源管理器的地址栏前面加上cmd路径

002,Jquery对象和Js对象的区别与转换_jquery包装集对象和lavascript对象有什么不一样,它们二者怎么实现转换?-程序员宅基地

文章浏览阅读103次。Jquery对象和js对象的区别与转换V哥教育QQ群:673215016官网:http://www.vgxit.com1,什么是Jquery我们通过jquery的$方法获取到的对象,和我们原生的js代码获取到的对象,是有一些区别的。当然,他们之前也有一些联系,可以相互转换。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <tit..._jquery包装集对象和lavascript对象有什么不一样,它们二者怎么实现转换?

SystemVerilog之时序块的采样与驱动_时钟块 提前采样延后驱动-程序员宅基地

文章浏览阅读793次。由于时钟偏移等因素的存在,用某个时钟clk驱动信号d1,在实际测试中总是会出现信号d1相对于clk总是会有一个无限小的延时(delta-cycle),为解决这一实际问题可采用本文的几种方法。_时钟块 提前采样延后驱动

16.【进阶】特征提升之特征筛选----feature_selection_corth-features-causal-feature-selection-via-orthog-程序员宅基地

文章浏览阅读1.3k次。#-*- coding:utf-8 -*-#特征筛选的目标:一句话来说就是去冗余特征;与PCA不同,不会修改特征值,而是寻找那些对模型性能提升较大的少量特征#使用Titanic数据集,通过特征筛选的方法一步步提升决策树的预测性能import pandas as pdtitanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki..._corth-features-causal-feature-selection-via-orthogonal-search