GitHub 上值得前端学习的数据结构与算法项目

文章介绍了多个GitHub仓库,包括《数据结构和算法之美》、《JS-Sorting-Algorithm》和《JavaScript数据结构与算法之美》等,涵盖了数据结构、常见算法的代码实现、教程和动态可视化,适合前端学习者深入理解并实践算法。
摘要由CSDN通过智能技术生成

algo: https://github.com/wangzheng0822/algo

数据结构和算法必知必会的 50 个代码实现。

包含数组、链表、栈、队列、递归、排序、二分查找、散列表、字符串、二叉树、堆、图、回溯、分治、动态规划 等。

每个代码实现有解释,测试用例。

// 选择排序

const selectionSort = (arr) => {

if (arr.length <= 1) return

// 需要注意这里的边界, 因为需要在内层进行 i+1后的循环,所以外层需要 数组长度-1

for (let i = 0; i < arr.length - 1; i++) {

let minIndex = i

for (let j = i + 1; j < arr.length; j++) {

if (arr[j] < arr[minIndex]) {

minIndex = j // 找到整个数组的最小值

}

}

const temp = arr[i]

arr[i] = arr[minIndex]

arr[minIndex] = temp

}

console.log(arr)

}

const test = [4, 5, 6, 3, 2, 1]

bubbleSort(test)

const testSort = [4, 1, 6, 3, 2, 1]

insertionSort(testSort)

const testSelect = [4, 8, 6, 3, 2, 1, 0, 12]

selectionSort(testSelect)

该仓库是《数据结构和算法之美》《设计模式之美》专栏作者创建的,前端章鱼猫也学习过他的《数据结构和算法之美》,非常不错的学习教程。


awesome-algorithms

https://github.com/mgechev/javascript-algorithms

此存储库包含不同著名计算机科学算法的 javascript 实现。

该仓库是不错的,不方便学习的地方就是需要安装依赖并运行才能看到效果及文档。

Call:

npm install

To setup repository with documentation

npm run doc

This will build the documentation and open it in your browser.


JS-Sorting-Algorithm

https://github.com/hustcc/JS-Sorting-Algorithm

一本关于排序算法的 GitBook 在线书籍 《十大经典排序算法》,使用 JavaScript & Python & Go & Java 实现。

包含冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序。

该仓库的文章有定义有解释、有代码实现、还有动态图,入门十大经典排序算法是个不错的教程。


JavaScript 数据结构与算法之美

https://github.com/biaochenxuying/blog#-javascript-%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95%E4%B9%8B%E7%BE%8E

包含了 十大经典排序算法 的思想、代码实现、一些例子、复杂度分析、动画、还有算法可视化工具。

这是比较精简的 JavaScript 数据结构与算法 的讲解。

该仓库总共写了 10 篇算法入门的文章

  1. 时间和空间复杂度

  2. 线性表(数组、队列、栈、链表)

  3. 实现一个前端路由,如何实现浏览器的前进与后退 ?

  4. 栈内存与堆内存 、浅拷贝与深拷贝

  5. 递归

  6. 非线性表(树、堆)

  7. 冒泡排序、选择排序、插入排序

  8. 归并排序、快速排序、希尔排序、堆排序

  9. 计数排序、桶排序、基数排序

  10. 十大经典排序算法汇总

  11. GitHub 上 170K+ Star 的前端学习的数据结构与算法项目

也是非常不错的数据结构与算法的入门学习资料。


daily-algorithms

https://github.com/barretlee/daily-algorithms

算法,每日练习的一个项目。

  • ★ 表示 easy,★★ 表示 medium,★★★ 表示 hard;

  • 题目主要来自 leetcode,可能会适当变换题设,改变难度;

  • 对于 ★ 和 ★★ 难度的题目,每天的量会随机出现 1~5 个,尤其是 ★ 的题目,比较简单。

白天出题,尽量晚上给出参考答案。

项目也不错,是以参与讨论的形式与大家一起学习数据结构与算法的。

就是内容积累还不够多,还不够火。


JavaScript 更多 …

https://github.com/search?l=JavaScript&o=desc&q=algo&s=stars&type=Repositories

还想知道更多好的数据结构与算法项目,可以点击上面的链接进行搜索。


最后

Star 数最多,但是并不代表该项目就最好并适合你哦,因为有些项目早于几年前就不再更新与维护了。

本文推荐的都是一些真的实用并还在更新的开源仓库,估计都比较适合前端学习。

总结

阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

最新阿里蚂蚁金服四面(已拿offer)Java技术面经总结

  • 17
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值