《Hello 算法》是一本用动画图解和可即时运行的代码来讲数据结构与算法的开源书。它最早是中文项目,后来扩展成多语言版本,GitHub 仓库里同时装着书稿正文和每个示例在十余种编程语言里的并行实现。把它当成一本自带可运行代码实验室的教科书来读。
这个定位很重要,因为 GitHub 把仓库标成了「Java」,容易误导。Java 这个标签只是因为该语言目录的体积最大。真正的内容是多语言的:同一个算法会用 Python、Java、C++、C、C#、JavaScript、TypeScript、Go、Swift、Rust、Ruby、Kotlin、Dart、Zig 各写一遍,你可以用自己的母语读书,用自己熟悉的语言看代码。
它填的是哪段空白
学算法的人多半会卡在两种难受的状态里。CLRS 或邓俊辉的教材足够严谨,但门槛陡,新手常常在数学上就停住,建立不起直觉。刷题站则把你直接推进题海,练出来的是套路匹配,讲不清一个结构为什么这样运作。《Hello 算法》瞄准的正是这两者之间的入门坡道。它的核心赌注是:动画加可运行代码,比静态伪代码更快建立直觉。这个赌注押对了:项目 2022 年底首次提交,截至 2026-06 已累积约 12.7 万星,涨势最陡的一段在 2023 年。
README 里两条推荐语值得认真对待,因为给出者的分量在。清华教授邓俊辉(那本广为使用的中文数据结构教材的作者)推荐它给初学者;亚马逊的李沐说自己当年要是有这本书,学起来会简单很多。这些信号说明这本书在教学上站得住脚,口碑比流量更能说明问题。
你实际能拿到什么
全书覆盖基础课表:复杂度分析、数组与链表、栈与队列、哈希表、树与二叉搜索树、堆、图,再到搜索、排序、分治、回溯、动态规划、贪心这些算法族。每个主题都配一张动画图解加一份最小实现。
真正的区分点在 codes/ 目录。每个示例都按语言落成一份可运行文件,你不用对着伪代码自己猜中间省了哪几步。可以先在浏览器里读完章节,再打开 Python 版确认理解,打开 Rust 版看看所有权机制如何改变代码的形状。对于正在换语言或想重温基础的人,这套并行布局就是让人反复回来翻的功能。
它有三种读法:在官网在线读、从 GitHub releases 下载 PDF 或 EPUB、或在本地起一个文档站。最新发布版是 1.3.0(2026 年 1 月),发布节奏已稳定在大约一年一版,说明这本书已是成熟形态,书稿基本完整。
怎么读、怎么跑
在线阅读访问 hello-algo.com,或到 releases 页下载 PDF / EPUB。
本地跑代码,克隆仓库后进入你那门语言的目录:
git clone https://github.com/krahets/hello-algo.git
cd hello-algo/codes/python
# 用你平时的工具链运行任意示例,例如
python chapter_array_and_linkedlist/array.py
想在本地起书本站点,仓库自带 Docker 配置:
docker-compose up -d
# 然后打开 http://localhost:8000
它没有需要安装的依赖。代码文件用各语言的标准运行时,书本身是静态内容。
适合谁,谁该另找别处
它适合纯新手、自学编程的人、想先建直觉再上形式化的学生,以及任何在用一门新语言、想看经典算法地道参考实现的人。视觉型学习者收益最大。
它不适合的是:赶 deadline 刷面试的人,这种情况下像 Coding Interview University 这类题驱动的计划更对路;或者你需要进阶内容时。《Hello 算法》刻意停在基础层,不覆盖高级图算法、深入的字符串算法、计算几何或正确性的形式化证明。要那种深度,你仍然需要一本严谨的教材。
横向对比
| 项目 | 星数(2026-06) | 是什么 | 最适合 |
|---|---|---|---|
| krahets/hello-algo | 约 12.7 万 | 动画 DSA 书 + 十余种语言可运行代码 | 从零建立直觉 |
| jwasham/coding-interview-university | 约 35.3 万 | 大厂面试自学清单 | 有计划地备面 |
| TheAlgorithms/Python | 约 22.2 万 | 算法参考实现合集 | 查一份干净实现 |
这三者更像互补关系。Hello 算法教概念,TheAlgorithms 给你一份实现目录,Coding Interview University 告诉你为找工作该学哪些。
star 曲线说明了什么
这条增长曲线的形状,是「找到了持久需求」的资源,而不是会迅速退潮的病毒式尖峰。2022 年底上线后,它在 2023 年陡升,之后一路稳步爬向 12.7 万。先快速起量、再长期平稳上行的 star 曲线,通常意味着项目从「上榜」跨进了「口碑推荐」,对学习资源来说这是更健康的形态。
README 没怎么强调的几点
许可证是最大的一条。仓库里的一切,正文和代码,都采用 CC BY-NC-SA 4.0。其中的 NC 指非商用:你可以免费阅读、分享、改编,但未经授权不能把内容放进付费课程、商业产品或带变现的内容里。README 把这点放在最底部,会让以为是 MIT 那种「随便用」许可的人吃一惊。
第二,非中文版本会滞后。英文、日文、俄文翻译是社区贡献,从未关闭的 issues 能看出翻译和代码转译都还是进行中的「help wanted」工作。中文原版最完整,其它语言在较新章节上可能跟不上。
第三,注意范围边界。这是一本刻意聚焦基础的书,别指望它覆盖那些更难、更偏研究的主题。
延伸阅读
- jwasham/coding-interview-university 看面试备战那条线
- TheAlgorithms/Python 想要一份能直接抄来研究的实现时
常见问题
Hello 算法免费吗? 免费。全书和全部代码按 CC BY-NC-SA 4.0 免费阅读使用。你可以在线读、下载 PDF 或 EPUB,也可以克隆仓库。唯一的限制是下面说的非商用条款。
Hello 算法支持哪些编程语言? 示例用了十余种语言实现,包括 Python、Java、C++、C、C#、JavaScript、TypeScript、Go、Swift、Rust、Ruby、Kotlin、Dart、Zig。书读一遍,看代码时挑你学的那门即可。
Hello 算法适合准备编程面试吗? 它适合打面试默认要求的那层基础,但它本身不是一份面试计划。它教你结构和算法怎么运作。要一份有 deadline 的学习排期和刷题节奏,把它和 Coding Interview University 搭配用。
Hello 算法可以商用吗? 未经授权不行。CC BY-NC-SA 4.0 禁止商业使用,所以你不能在未联系作者的情况下把正文或代码用于付费课程或产品。个人学习、课堂使用、非商业分享都没问题。
Hello 算法和 LeetCode 该用哪个? 它们服务于不同阶段。Hello 算法用动画和可读代码帮你建立概念模型;LeetCode 在你有了模型之后用题目把你练熟。多数人先读 Hello 算法,再去刷题站练习。