JavaScript 中实现的算法和数据结构,附有解释和指向进一步阅读的链接
乌克兰正在遭受俄罗斯军队的袭击。平民正在被杀害。居民区正在被轰炸。
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.
B - 初级, A - 高级
B 链表B 双向链表B 队列B 堆栈B 队列 - 双端队列B 哈希表B 堆 - 最大堆和最小堆版本B 优先级队列A TrieA 树A 二叉搜索树A AVL 树A 红黑树A 分段树 - 包含最小/最大/和的范围查询示例A 菲涅尔树 (二进制索引树)A 图 (有向和无向)A 并查集 - 并联-查找数据结构或合并-查找集合A 布隆过滤器A LRU 缓存 - 最少最近使用 (LRU) 缓存算法是一套明确说明如何解决一类问题的规则,它精确地定义了一系列操作。B - 初级, A - 高级
B 位操作 - 设置/获取/更新/清除位,乘除以 2,转换为负数等B 二进制浮点数 - 浮点数的二进制表示B 阶乘B 菲波那契数 - 经典和闭合形式的版本B 素数因子 - 使用哈迪-拉马努金定理找到素数因子并计数它们B 素数测试(试除法)B 欧几里德算法 - 计算最大公约数(GCD)B 最小公倍数(LCM)B 艾拉托斯腾斯筛 - 找到任何给定限制下的所有素数B 是否为二次幂 - 检查数是否为二次幂(朴素算法和位操作算法)B 帕斯卡三角形B 复数 - 复数和与它们相关的基本运算B 度与弧度 - 从弧度转换为度,反之亦然B 快速幂B 霍纳方法 - 求多项式B 矩阵 - 矩阵和基本矩阵运算(乘法,转置等)B 欧几里德距离 - 两点/向量/矩阵之间的距离A 整数分解A 平方根 - 牛顿法A 刘惠π算法 - 基于 N 多边形的π近似计算A 离散傅里叶变换 - 将时间函数(信号)分解为组成它的频率B 乘积 - 多个集合的乘积B 费雪-耶茨洗牌 - 将有限序列随机排序A 力集 - 一个集合的所有子集(位操作、回溯和级联解法)A 顺序排列(含重复)A 组合(含重复)A 最长公共子序列(LCS)A 最长递增子序列A 最短公共超序列(SCS)A 背包问题 - "0/1" 和 "无限制" 两种A 最大子数组[TEL] Telugu 语言翻译 / తెలుగు భాష అనువాదము
为算法添加动画
在 DP 中添加矩阵链乘法
在 detectUndirectedCycle 中构建的循环路径不正确
BinarySearchTreeNode 删除
很高兴看到 `讨论` 选项卡被引入到这个仓库中
zh-TW 缺少翻译 — 是否需要贡献者帮助完成?
为手机和电脑建立网站
功能请求: 添加 TypeScript 类型定义
[错误] README.md