为什么学习这个库?
这不仅是一个算法教学库,更是一个编程思维训练营。
表层的框架与应用日新月异,而数据结构、算法以及底层逻辑思维则历久弥新。
多语言对照学习
同一算法用 C、Java、Python、JavaScript、Go、TypeScript、Rust 等多种语言实现,理解语言特性与算法思想的结合
完整学习闭环
从概念理解 → 代码实现 → 复杂度分析 → 练习应用,一站式学习
AI时代的新视角
包含《AI时代程序员的三层能力》系列文章,教你如何用算法思想指导AI编程
代码质量高
所有代码都有详细注释,遵循工程最佳实践,可直接用于面试和项目
循序渐进
从新手入门指南到高级算法思想,适合各个学习阶段
持续更新
定期补充新的算法、语言实现和真实项目案例
快速开始(3分钟上手)
5个循序渐进的学习步骤,帮助你系统地掌握算法与数据结构
AI时代的新挑战:三层能力框架
AI能写代码,但不能替代你的思考。掌握这三层能力,让你成为AI时代的优秀程序员
学习内容地图
从基础到进阶,系统化学习算法与数据结构
7大核心算法策略思想
掌握这7大思想,你就能解决99%的编程问题:
| 算法思想 | 核心 | 适用场景 | 例子 | 代码 |
|---|---|---|---|---|
| 贪心算法 Greedy | 每步选最优,期望全局最优 | 最优子结构 + 无后效性 | 活动选择、最小生成树、霍夫曼编码 | 查看 |
| 分治算法 Divide and Conquer | 分解 → 求解 → 合并 | 子问题结构相同 | 快排、归并排序、二分查找 | 查看 |
| 动态规划 Dynamic Programming | 空间换时间,记忆化避免重复 | 最优子结构 + 重叠子问题 | 背包问题、最长递增子序列、编辑距离 | 查看 |
| 回溯算法 Backtracking | 尝试 → 探索 → 回退 | 需要遍历所有可能 | N皇后、数独、排列组合 | 查看 |
| 分支限界 Branch and Bound | 系统探索 + 聪明剪枝 | 优化问题 | 背包问题、旅行商问题 | 查看 |
| 随机化算法策略 Randomization | 蒙特卡洛、随机快排、模拟退火 | 避免最坏情况、跳出局部最优 | 随机采样、随机pivot、随机扰动 | 查看 |
| 搜索算法策略 Search Strategies | BFS、DFS、A* | 最短路径、全局遍历、目标导向 | 图遍历、拓扑排序、路径规划 | 查看 |
搜索与查找(6种算法)
| 算法 | 时间复杂度 | 难度 | 代码 |
|---|---|---|---|
| 线性搜索 | O(n) | ⭐ | 查看 |
| 二分查找 | O(log n) | ⭐ | 查看 |
| 插值查找 | O(log log n) | ⭐⭐ | 查看 |
| 朴素字符串搜索 | O(mn) | ⭐ | 查看 |
| KMP搜索 | O(n+m) | ⭐⭐⭐ | 查看 |
| 最长公共子序列 | O(mn) | ⭐⭐⭐ | 查看 |
排序算法(10大经典排序)
| 排序算法 | 时间复杂度 平均/最坏 |
空间复杂度 | 稳定性 | 最佳场景 | 代码 |
|---|---|---|---|---|---|
| 冒泡排序 | O(n²)/O(n²) | O(1) | ✅ | 小规模、教学 | 查看 |
| 插入排序 | O(n²)/O(n²) | O(1) | ✅ | 小规模、半有序 | 查看 |
| 选择排序 | O(n²)/O(n²) | O(1) | ❌ | 交换次数少 | 查看 |
| 堆排序 | O(n log n)/O(n log n) | O(1) | ❌ | 优先队列、TOP K | 查看 |
| 快速排序 | O(n log n)/O(n²) | O(log n) | ❌ | 通用排序 | 查看 |
| 归并排序 | O(n log n)/O(n log n) | O(n) | ✅ | 大数据、外部排序 | 查看 |
| 希尔排序 | O(n log n)/O(n²) | O(1) | ❌ | 中等规模 | 查看 |
| 计数排序 | O(n+k)/O(n+k) | O(k) | ✅ | 整数、范围有限 | 查看 |
| 桶排序 | O(n+k)/O(n²) | O(n+k) | ✅ | 均匀分布 | 查看 |
| 基数排序 | O(nk)/O(nk) | O(n+k) | ✅ | 大整数排序 | 查看 |
你将获得什么?
知识体系
- 完整的算法与数据结构体系:从基础到进阶,系统化学习
- 清晰的学习路径:避免走弯路,高效学习
- 深度的思想理解:不只是记住算法,而是理解其本质
- 多语言的视野:用不同语言实现,拓宽思维
实战能力
- 高质量代码:每个算法都有精简、规范的实现
- 即插即用:代码可直接用于面试和项目
- 包含测试:提供完整的测试用例和验证
- 复杂度分析:清楚地理解时间和空间权衡
职业发展
- 面试突破:掌握核心算法思想,面试不再怂
- 晋升加速:深刻的算法理解是优秀工程师的标志
- AI时代竞争力:用算法思想指导AI,成为稀缺人才
- 技术品味:学会如何思考和设计,而不只是编码