All Projects → azl397985856 → js-algorithm-light

azl397985856 / js-algorithm-light

Licence: other
轻量级的 JavaScript 数据结构与算法库。

Programming Languages

javascript
184084 projects - #8 most used programming language

💖 js-algorithm-light 💖

定位 💺

轻量级的 JavaScript 数据结构与算法库。

为什么?🙋

众所周知, JS 内置数据结构与算法的支持情况简直惨淡。大家如果真的要使用一些“高级”数据结构,要不自己实现,要么使用一些优秀的开源框架。这本身没有问题。但是:

  • 如果面试用到了某一个数据结构,恰好 JS 不内置怎么办?
  • 我想知道某一个数据结构(比如堆)的实现原理怎么办?

一般而言,我们有两种方法:

  1. 看优秀 JS 数据结构框架的源码。
  2. 看网上大家实现的代码。

先说第一种方式。框架源码为了兼容一些 edge case 或者提升压榨一点性能往往采取一些 hack,这些 hack 会极大阻碍你的阅读效率。因此这种方式我并不推荐。

再说下第二种方式。我在开辟仓库之前也搜索过一些数据结构的 JS 实现,给我的感觉就是 不优雅,不简洁。另外网上也不存在一个系统性的资料,大家的代码风格也各不相同,这对学习效率而言是不利的。

因此我开辟了这个仓库,暂定的目标是对标 Python 所有的内置数据结构和算法

RoadMap 📘

目前实现了 heap, deque 和 binary_search 的主要 api。

heap deque binary_search sorted_list indexed_priority_queue
pop popleft bisect_left pop
push append bisect_right push
heapify change

点击表格中的链接可以直接定位到源码文件。

Try it online

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].