前言

算法为王。
想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手;只有内功深厚者,前端之路才会走得更远。

强烈推荐 GitHub 上值得前端学习的数据结构与算法项目,包含 gif 图的演示过程与视频讲解。

笔者 GitHub:https://github.com/biaochenxuying/blog。

GitHub 项目

数据结构与算法

关于数据结构与算法的 GitHub 项目,star 数由高到低排序。

  • javascript-algorithms(51.3k) 该仓库包含了多种基于 JavaScript 的算法与数据结构,提供进一步阅读的解释和链接。 每种算法和数据结构都有自己的 README,包含相关说明和链接,以便进一步阅读 (还有 YouTube 视频) 。
  • Algorithm_Interview_Notes-Chinese(24.6k) 2018/2019/校招/春招/秋招/算法/机器学习(Machine Learning)/深度学习(Deep Learning)/自然语言处理(NLP)/C/C++/Python/面试笔记
  • algorithm-visualizer(23k) 算法可视化工具是一个交互式的在线平台,可以从代码中可视化算法。
  • swift-algorithm-club(20.8k) 算法和数据结构迅速,有解释 !
  • algorithms(15.4k) Python中数据结构和算法的最小示例。
  • algo(8.3k) 数据结构和算法必知必会的50个代码实现。
  • awesome-algorithms(6.4k) 一份很棒的学习和/或练习算法的地方的整理清单。
  • algorithms 对Jeff的算法书、笔记等进行错误跟踪
  • javascript-algorithms(5.4k) 此存储库包含不同著名计算机科学算法的 javascript 实现。
  • Learn-Algorithms(3.8k) 算法学习笔记。
  • AlgoXY(3.8k) 基本算法和数据结构手册。
  • JS-Sorting-Algorithm(2.9k) 一本关于排序算法的 GitBook 在线书籍 《十大经典排序算法》,使用 JavaScript & Python & Go & Java 实现。
  • JavaScript 更多 ...
  • 其他语言,更多 ...

LeetCode

关于 LeetCode 的 GitHub 项目,star 数由高到低排序。

  • LeetCodeAnimation(36k) 用动画的形式呈现解LeetCode题目的思路。
  • leetcode(13.6k) leetcode 题解,记录自己的leetcode解题之路。
  • leetcode(11.2k) leetcode 问题解决方案。
  • leetcode(7.7k) LeetCode题解,151道题完整版。
  • awesome-java-leetcode(6.2k) LeetCode算法与Java解决方案(更新)。
  • vscode-leetcode(4.1k) 在 VS Code 中练习 LeetCode。
  • LintCode(3.4k) LintCode/LeetCode 的 Java 解决方法。
  • algorithm-exercise(2.6k) 数据结构与算法/leetcode/lintcode题解/
  • 更多 ...

JavaScript 数据结构与算法之美

JavaScript 数据结构与算法之美 系列文章,包含了 十大经典排序算法 的思想、代码实现、一些例子、复杂度分析、动画、还有算法可视化工具。

这应该是目前最精简的 JavaScript 数据结构与算法 的讲解了吧。

  • 1. JavaScript 数据结构与算法之美 - 时间和空间复杂度
  • 2. JavaScript 数据结构与算法之美 - 线性表(数组、队列、栈、链表)
  • 3. JavaScript 数据结构与算法之美 - 实现一个前端路由,如何实现浏览器的前进与后退 ?
  • 4. JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
  • 5. JavaScript 数据结构与算法之美 - 递归
  • 6. JavaScript 数据结构与算法之美 - 非线性表(树、堆)
  • 7. JavaScript 数据结构与算法之美 - 冒泡排序、选择排序、插入排序
  • 8. JavaScript 数据结构与算法之美 - 归并排序、快速排序、希尔排序、堆排序
  • 9. JavaScript 数据结构与算法之美 - 计数排序、桶排序、基数排序
  • 10. JavaScript 数据结构与算法之美 - 十大经典排序汇总
  • 11. JavaScript 数据结构与算法之美 - 优秀程序员都应该学习的 GitHub 上开源的数据结构与算法项目

算法可视化工具

  • 算法可视化工具 algorithm-visualizer 算法可视化工具 algorithm-visualizer 是一个交互式的在线平台,可以从代码中可视化算法,还可以看到代码执行的过程。

效果如下图。

旨在通过交互式可视化的执行来揭示算法背后的机制。

  • 算法可视化来源 https://visualgo.net/en 效果如下图。
  • https://www.ee.ryerson.ca
  • illustrated-algorithms

变量和操作的可视化表示增强了控制流和实际源代码。您可以快速前进和后退执行,以密切观察算法的工作方式。

最后

觉得有用 ?喜欢就收藏,顺便点个赞吧,你的支持是我最大的鼓励!

笔者 GitHub:https://github.com/biaochenxuying/blog

推荐阅读:

重磅:硬核前端面试开源项目汇总(进大厂必备)​mp.weixin.qq.com

GitHub 上能挖矿的神仙技巧 - 如何发现优秀开源项目​mp.weixin.qq.com

笔者的技术博客首发地址如下:

一般项目中哪里体现了数据结构_优秀程序员都应该学习的数据结构与算法项目(GitHub 开源清单)...相关推荐

  1. js怎么在一个div中嵌入另一网站_好程序员web前端学习路线分享HTML5常见面试题集锦一...

    好程序员web前端学习路线分享HTML5常见面试题集锦,接下来将会持续为大家分享几篇HTML5常见面试题. 1.布局 左边20% 中间自适应 右边200px 不能用定位 答案:圣杯布局/双飞翼布局或者 ...

  2. 大数据开发要学哪种编程语言_每个软件开发人员都应该学习的5种编程语言

    大数据开发要学哪种编程语言 我读过某个地方,程序员应该每年学习一种新的编程语言(虽然我认为它是完整的代码 ,但不确定),但是如果您不能这样做,我建议至少学习以下五种编程语言,以便在您的语言中做得更好事 ...

  3. java项目_好程序员Java分享从入门到服务端项目开发的过程

    好程序员Java分享从入门到服务端项目开发的过程,对于打算入门或者刚刚入门学习Java的人来说,刚开始接触这门学科,往往会觉得不知所措,也会觉得很迷茫.结合前人经验,就从入门到进阶对于Java的学习而 ...

  4. 学计算机数据结构重要吗,程序员都说数据结构重要,那么究竟什么是数据结构?...

    原标题:程序员都说数据结构重要,那么究竟什么是数据结构? 大学阶段,如果问大家计算机专业课中哪门课是最重要的?想必有一多半的人都会回答数据结构.既然大家都说数据结构重要,那么究竟什么是数据结构呢?今天 ...

  5. 每个程序员都应该学习的 6 种数据结构

    数据结构和算法是编程的支柱,这里有6个Java程序员应该学习的基本数据结构 扫码关注<Java学研大本营>,加入读者群,分享更多精彩 数据结构是程序的构建块.甚至有人说"数据结构 ...

  6. 03 _ 优秀程序员的六个关键特质

    什么样的程序员才是优秀的程序员呢? 如果去问一个程序员,得到的答案有可能是,"写的一手好代码,做过几个大项目,设计.编程样样不在话下".如果去问程序员的同学,得到的答案有可能是,& ...

  7. ajax请求是宏任务还是微任务_好程序员web前端学习路线分享了解AJAX是什么

    好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...

  8. 二叉树的字符图形显示程序_每个程序员都必须知道的8种通用数据结构

    作者:IT-Evan https://www.cnblogs.com/IT-Evan/p/12444968.html 数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操 ...

  9. 精确的数据访问冲突_每个程序员都必须知道的8种通用数据结构

    快速介绍8种常用数据结构 数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作. 数据结构在计算机科学和软件工程领域具有广泛而多样的用途. 几乎所有已开发的程序或软件系 ...

最新文章

  1. 【Harvest源码分析】GetFourZeroCrossingIntervals函数
  2. BZOJ4298 : [ONTAK2015]Bajtocja
  3. Struts2---入门
  4. 数据的预处理与特征构建(申请评分卡模型)
  5. 利用 Chef 在 Red Hat Enterprise Linux 上自动化部署 Mariadb Galera Cluster
  6. Vbox linux虚拟机桥接(VM操作也类似)
  7. 【哲学】形而上学具体指什么?metaphysics
  8. 宏BOOST_TEST_ALL_WITH的用法实例
  9. TimeUnit.SECONDS.sleep()和sleep区别
  10. bootstrap 空行不显示横杠_bootstrap兼容问题
  11. 改变CSS世界纵横规则的writing-mode属性
  12. pencil导出html,用Apple Pencil做笔记:要的就是这个感觉!
  13. 为知笔记Linux一键安装版
  14. 微信营销与博客营销的区别
  15. 彻底解决win10黑屏,睡眠后无法唤醒(Intel平台)
  16. 爆料称macOS Ventura正式版预计将于10月最后一周推出 支持新款14/16英寸MacBook Pro
  17. linux怎么重复命令,Linux系统中重复执行历史命令的方法有哪些?
  18. CentOS 7 下Kubernetes 1.16.4安装
  19. pyspark 数据类型转换_PySpark之DataFrame的创建与转换
  20. 语义分割系列论文 ParseNet

热门文章

  1. assign深拷贝_Object.assign 深拷贝?浅拷贝?
  2. mybatis insert 重复数据2条_Mybatis框架lt;增gt;:添加一条数据到数据库中,insert...
  3. Android实现网络音乐播放器
  4. Python 使用 Scrapy 发送 post 请求的坑
  5. Python自省(反射) 与 inspect 模块
  6. C++学习之路 | PTA乙级—— 1030 完美数列 (25 分)(精简)
  7. spring框架做全局异常捕获_@ControllerAdvice注解(全局异常捕获)
  8. xd使用技巧_魔兽世界怀旧服老玩家才会的治疗技巧,这四个技能需要看时机选择...
  9. java编译命令带参数_java编译命令基础知识点
  10. 计算机考研的调查和改进建议