登录 注册

javascript-algorithms (JS 算法与数据结构)

去点 Star
教育与学习 algorithmalgorithmscomputer-sciencedata-structuresinterviewinterview-preparation
196,726
Stars
30,979
Forks
4,174
Watchers
438
Open Issues
MIT
许可证
JavaScript
语言
2018-03-24
创建时间
2026-07-26
最近更新

项目能做什么

用 JavaScript 实现的常用算法与数据结构集合,附带详细解释及参考延伸阅读,适合学习与面试准备。
来源:基于仓库元数据 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

项目简介

javascript-algorithms 是一个包含了多种常见算法与数据结构的 JavaScript 实现代码库。仓库中的每个数据结构与算法都配有独立的 README.md 说明文档,包含原理解释以及相关的进一步阅读链接(含视频教程链接等)。项目还区分了初学者(Beginner)与进阶(Advanced)难度,便于循序渐进地学习。

核心功能

  • 丰富的数据结构实现:
  • 基础(Beginner):Linked List(链表)、Doubly Linked List(双向链表)、Queue(队列)、Stack(栈)、Deque(双端队列)、Hash Table(哈希表)、Heap(堆,包含最大堆/最小堆)、Priority Queue(优先队列)。
  • 进阶(Advanced):Trie(字典树)、Tree(树结构,包含二叉搜索树、AVL 树、红黑树、线段树、树状数组)、Graph(图,包含有向图与无向图)、Disjoint Set(并查集)、Bloom Filter(布隆过滤器)、LRU Cache(LRU 缓存)。
  • 多种主题算法实现:
  • 数学相关(Math):位运算(Bit Manipulation)、阶乘(Factorial)、斐波那契数列(Fibonacci)、素数检测与分解、欧几里得算法(最大公约数 GCD / 最小公倍数 LCM)、埃氏筛(Sieve of Eratosthenes)、矩阵操作(Matrices)、欧几里得距离等。
  • 多语言文档支持:除英文原版外,仓库自带包括简体中文(README.zh-CN.md)、繁体中文(README.zh-TW.md)在内的多语言版本。

适合谁用

  • 想用 JavaScript 学习和巩固计算机基础(数据结构与算法)的前端或全栈开发者。
  • 准备前端算法面试、寻找标准 JS 数据结构实现的开发者。
  • 希望寻找带有代码和原理解释的学习参考手册的开发者。

安装步骤

此部分原文未说明,请查看原仓库。
(注:仓库内包含 JavaScript 实现源码,开发者可直接通过 git clone 检出仓库并在具体目录下查阅对应实现与测试代码)。

配置说明

此部分原文未说明,请查看原仓库。

常见问题

  • 有没有官方中文版文档?
    仓库本身已经内置了官方简体中文 README,可直接访问根目录下的 README.zh-CN.md 进行阅读。
  • 难度标记是什么含义?
    文档中每个知识点前标注的 B 代表初学级别(Beginner),A 代表进阶级别(Advanced)。
原始 README 摘录(英文原文,节选前 3000 字符)
# JavaScript Algorithms and Data Structures

> 🇺🇦 UKRAINE [IS BEING ATTACKED](https://war.ukraine.ua/) BY RUSSIAN ARMY. CIVILIANS ARE GETTING KILLED. RESIDENTIAL AREAS ARE GETTING BOMBED.
> - Help Ukraine via:
>   - [Serhiy Prytula Charity Foundation](https://prytulafoundation.org/en/)
>   - [Come Back Alive Charity Foundation](https://savelife.in.ua/en/donate-en/)
>   - [National Bank of Ukraine](https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi)
> - More info on [war.ukraine.ua](https://war.ukraine.ua/) and [MFA of Ukraine](https://twitter.com/MFA_Ukraine)

<hr/>

[![CI](https://github.com/trekhleb/javascript-algorithms/workflows/CI/badge.svg)](https://github.com/trekhleb/javascript-algorithms/actions?query=workflow%3ACI+branch%3Amaster)
[![codecov](https://codecov.io/gh/trekhleb/javascript-algorithms/branch/master/graph/badge.svg)](https://codecov.io/gh/trekhleb/javascript-algorithms)
![repo size](https://img.shields.io/github/repo-size/trekhleb/javascript-algorithms.svg)

This repository contains JavaScript based examples of many
popular algorithms and data structures.

Each algorithm and data structure has its own separate README
with related explanations and links for further reading (including ones
to YouTube videos).

_Read this in other languages:_
[_简体中文_](README.zh-CN.md),
[_繁體中文_](README.zh-TW.md),
[_한국어_](README.ko-KR.md),
[_日本語_](README.ja-JP.md),
[_Polski_](README.pl-PL.md),
[_Français_](README.fr-FR.md),
[_Español_](README.es-ES.md),
[_Português_](README.pt-BR.md),
[_Русский_](README.ru-RU.md),
[_Türkçe_](README.tr-TR.md),
[_Italiano_](README.it-IT.md),
[_Bahasa Indonesia_](README.id-ID.md),
[_Українська_](README.uk-UA.md),
[_Arabic_](README.ar-AR.md),
[_Tiếng Việt_](README.vi-VN.md),
[_Deutsch_](README.de-DE.md),
[_Uzbek_](README.uz-UZ.md),
[_עברית_](README.he-IL.md)

## Data Structures

A data structure is a particular way of organizing and storing data in a computer so that it can
be accessed and modified efficiently. More precisely, a data structure is a collection of data
values, the relationships among them, and the functions or operations that can be applied to
the data.

Remember that each data has its own trade-offs. And you need to pay attention more to why you're choosing a certain data structure than to how to implement it.

`B` - Beginner, `A` - Advanced

* `B` [Linked List](src/data-structures/linked-list)
* `B` [Doubly Linked List](src/data-structures/doubly-linked-list)
* `B` [Queue](src/data-structures/queue)
* `B` [Stack](src/data-structures/stack)
* `B` [Deque](src/data-structures/deque) - double-ended queue
* `B` [Hash Table](src/data-structures/hash-table)
* `B` [Heap](src/data-structures/heap) - max and min heap versions
* `B` [Priority Queue](src/data-structures/priority-queue)
* `A` [Trie](src/data-structures/trie)
* `A` [Tree](src/data-structures/tree)
  * `A` [Binary Search Tree](src/data-structures/tree/binary-search-tree)
  * `A` [AVL Tree](src/d
阅读完整原文

项目深度分析 规则生成(AI 未配置)

综合评分 54.5 分。该项目在“个人可实施性”维度得 60 分,“付费可能性”维度得 40.0 分,差异化空间 70.0 分(评分依据见评分卡)。

将 javascript-algorithms 改造为垂直场景 SaaS

产品构想保留核心能力,针对某一类用户(如某行业团队)做托管版,收取月费。
目标用户有该需求的中小团队 / 独立站长
难度/周期中 · 2~4 周(MVP)
收费模式订阅制(如 ¥29~99/月)
竞争风险需验证付费意愿;注意许可证合规
依据 数据支持的判断:许可证与关键词显示存在商用与付费场景

面向细分需求的二次开发产品

产品构想基于 javascript-algorithms 的核心能力,聚焦一个更窄的场景(如某平台、某行业)做差异化。
目标用户该细分场景用户
难度/周期中 · 2~6 周
收费模式买断制 / 订阅制 / 广告
竞争风险细分需求规模需验证
依据 AI 推测:基于项目主题标签的判断

封装为在线小工具或 API 服务

产品构想把项目最常用的一个功能做成网页小工具,靠流量变现或按量计费。
目标用户搜索引擎带来的长尾用户
难度/周期低 · 1~3 周
收费模式免费引流 + 增值功能 / API 按量计费
竞争风险同质化竞争,需做好 SEO
依据 AI 推测:基于技术栈与部署特征的判断
以上为规则引擎基于仓库公开数据生成的参考结论,包含推测成分,不构成投资或创业承诺;配置 AI 后可获得更深入的分析。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

项目中文简介Stars语言
jwasham/coding-interview-university 中文介绍暂未生成
A complete computer science study plan to become a software
364,226 -
TheAlgorithms/Python 中文介绍暂未生成
All Algorithms implemented in Python
226,010 Python
yangshun/tech-interview-handbook 中文介绍暂未生成
Curated coding interview preparation materials for busy soft
143,254 TypeScript
labuladong/fucking-algorithm 中文介绍暂未生成
Crack LeetCode, not only how, but also why.
136,044 Markdown
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。

项目优势与风险

技术成熟度创建于 2018-03-24,最近推送 2026-07-26
社区活跃Star 196,726 / Fork 30,979 / Issue 438(数据支持,可自行核实)
许可证MIT
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。