krahets

krahets/hello-algo

《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现

⭐ 129.6k ⑂ 15.5k Java NOASSERTION · 4 天前推送
129.6k
Watchers
0
贡献者
0
Commits
0
Releases
42
Open Issues
4 天前
最近推送

📦 版本动态

1.3.0 2026-01-01

《Hello 算法》1.3.0 版本的 PDF(便携式文档格式)与 ePub(电子书格式)电子书请见下方附件。 ## 主要改动 - 排序、动态规划、回溯、分治、图、哈希、堆等章节修订与补充(@krahets)。 - 新增 EPUB 生成器(@zhongfq),优化 PDF、在线版视觉呈现(@krahets)。 - 新增日文版本(@eltociear),优化英文翻译(@magentaqin、@yuelinxin),同步中文版与英文版内容(@krahets)。 ## 贡献者 感谢 @Asa0oo0o0o, @Asashishi, @Chieko-Seren, @CreatorMetaSky, @Dr-XYZ, @K3v123, @KNChiu, @KawaiiAsh, @PXG-XPG, @Phoenix0415, @QiLOL, @RafaelCaso, @SamJin98, @Shyam-Chen, @Transmigration-zhou, @Umer-Jahangir, @Urbaner3, @beatrix-chan, @danny900714, @eltociear, @krahets, @linyejoe2, @llql1211, @longsizhuo, @lovelock, @magentaqin, @paoxiaomooo, @pengchzn, @prinpal, @realwujing, @rongyi, @seven1240, @steventimes, @sunshinesDL, @thomasq0, @yanedie, @ymmmas, @yuelinxin, @zhongfq, @ztkuaikuai 对该版本的贡献! ## 下载链接 | 语言 | 简体中文 | 繁體中文 | English | |------|---------------|-------------------|--------------| | Python | [PDF](https://github.

1.2.0 2024-12-06

--- 《Hello 算法》1.2.0 版本的 PDF(Portable Document Format,便携式文档格式)电子书请见附件,包括以下版本: - **语言**:简体中文、繁体中文(PDF 文件名分别包含 `zh` 和 `zh-hant`); - **代码**:Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C、Ruby、Kotlin; ## 主要改动 - 新增繁体中文版 PDF(由 @Shyam-Chen、@Dr-XYZ 审阅)。 - 新增 Ruby 语言(由 @khoaxuantu 审阅),优化 Rust 代码(@rongyi)。 - 中译英: - 完成“搜索(Searching)”、“排序(Sorting)”、“分治(Divide and Conquer)”、“回溯(Backtracking)”、“动态规划(Dynamic Programming)”、“贪心(Greedy)”的初始翻译。 - 完成所有章节插图的初始翻译。 - 完成 Python、Java、C++ 代码注释的初始翻译。 - 对哈希表(Hash Table)、树(Tree)、堆(Heap)和图(Graph)章节的翻译进行了第一轮优化。 - 各类细节优化与问题修复。 ## 贡献者 感谢 @BlindTerran, @CarrotDLaw, @Enlightenus, @Gonglja, @K3v123, @KraHsu, @LifeGoesOnionOnionOnion, @QiLOL, @Risuntsy, @Shyam-Chen, @Transmigration-zhou, @Xi-Row, @XiaoK29, @Yucao-cy, @ZhongGuanbin, @ZhongYuuu, @bitsmi, @bluebean-cloud, @bongbongbakudan, @cy-by-side, @eagleanurag, @goerll, @hopkings2008, @hpstory, @iFleey, @junminhong, @khoaxuantu, @krahets, @magentaqin, @martinx, @nedchu, @nuomi1, @nuquist19, @popozhu, @rongyi, @seven1240, @smilelsb, @sslmj2020, @steventimes, @thomasq0, @wodray, @xiaomiusa87, @yuelinxin 对该版本的贡献! > [!tip] ---

1.1.0 2024-04-14

您提供的这段 README 内容已经是简体中文,因此无需整篇翻译。如果您的本意是把英文版 README 翻译成中文,请提供英文原文。 当前内容中唯一需要按您的要求处理的技术术语是 **PDF callouts**,可注释为:**PDF callouts(PDF 文档中的提示框/标注)**。整理后的内容如下: --- 《Hello 算法》1.1.0 版本的 PDF 电子书请见附件,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、Rust、C 和 Kotlin 等语言。 ## 主要改动 - 新增小节:纸质书、序,重写小节:术语表。 - 新增繁体中文版(由 @Shyam-Chen、@Dr-XYZ 审阅)。 - 新增 Kotlin 语言(由 @curtishd 审阅),修订 Swift 代码(@nuomi1)。 - 新增中译英指南、翻译图文等(由 @K3v123、@yuelinxin、@RafaelCaso、@thomasq0、@QiLOL、@pengchzn 审阅)。 - 重新设计网页版主页、优化术语标注、PDF callouts(PDF 文档中的提示框/标注)等。 - 修复各类已知问题。 ## 贡献者 感谢 @Allen-Scai, @CuB3y0nd, @Dr-XYZ, @Gonglja, @K3v123, @KeiichiKasai, @Phoenix0415, @QiLOL, @Reanon, @SamJin98, @YangXuanyi, @bluebean-cloud, @curtishd, @cy-by-side, @echo1937, @fanenr, @hpstory, @hugtyftg, @khoaxuantu, @krahets, @longsizhuo, @nanlei, @nidhoggfgg, @night-cruise, @nuomi1, @primexiao, @qq909244296, @rongyi, @sdshaoda, @yang-le 对该版本的贡献! > [!tip] > 纸质书已发行,详情请见[此链接](https://www.hello-algo.com/chapter_paperbook/)。

1.0.0 2024-01-13

> [!Important] > > 已有更新版本,最新发行版请见 [Release](https://github.com/krahets/hello-algo/releases) 页面。 此版本为《Hello 算法》1.0.0 正式版,主要内容包括: - 复杂度分析:数据结构和算法的评价维度与方法。时间复杂度和空间复杂度的推算方法、常见类型、示例等。 - 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 - 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤和示例问题等。 **现已支持 Python, C++, Java, C#, Go, Swift, JavaScript, TypeScript, Dart, Rust, C 等多种编程语言的 PDF 电子书下载**。 ## 主要改动 1. 添加小节:术语表。 2. 引入 pythontutor 代码可视化运行模块。 3. 启动中译英工作流,已完成翻译前三章。 4. 完成整书文字、图片和代码的修订工作。 5. 更新项目 logo、主页图、封面图等素材。 6. 修复各类已知问题。 ## 致谢 一年多来,《Hello 算法》经历了数个版本的迭代,在开源社区 130 多位贡献者的共同努力下不断完善。感谢本书的所有贡献者,包括:@krahets、@codingonion、@Gonglja、@nuomi1、@Reanon、@justin-tse、@hpstory、@danielsss、@S-N-O-R-L-A-X、@night-cruise、@msk397、@gvenusleo、@RiverTwilight、@gyt95、@zhuoqinyue、@Zuoxun、@mingXta、@Xia-Sang、@FangYuan33、@GN-Yu、@IsChristina、@xBLACKICEx、@guowei-gong、@Cathay-Chen、@mgisr、@JoseHung、@qualifier1024、@pengchzn、@Guanngxu、@L-Super、@longsizhuo、@WSL0809、@Slone123c、@

1.0.0b6 2023-10-29

> [!Important] > > 已有更新版本,最新发行版请见 [Release](https://github.com/krahets/hello-algo/releases) 页面。 该版本为《Hello 算法》1.0.0 版的预发布 b6 版本。 现已支持 Python, C++, Java, C#, Go, Swift, JavaScript, TypeScript, Dart, Rust, C 的 PDF 电子书下载。 ## 主要改动 - 新增 Rust 和 C 语言版 PDF 电子书。 - 重新实现开放寻址哈希表、归并排序。 - 更新部分章节 Q&A(问答)。 - 统一 C# 代码样式为 PascalCase(大驼峰命名法)。 - 添加 auto-bulid-and-check workflow(自动构建与检查工作流),现已包括 Python, C#, Swift, Dart。 - 优化暗色主题样式、页面交互。 - 减小图片文件大小,提升加载速度。 - 修复各类已知问题。 ## 贡献者 感谢 @0130w, @52coder, @Evilrabbit520, @FreddieLi, @Gonglja, @Horbin-Magician, @MwumLi, @Nigh, @Phoenix0415, @QiLOL, @Transmigration-zhou, @Turing-1024-Lee, @Zuoxun, @coderlef, @foursevenlove, @gledfish, @gvenusleo, @hpstory, @hts0000, @huawuque404, @justin-tse, @keshida, @kilikilikid, @krahets, @lclc6, @lhxsm, @logan-qiu, @longsizhuo, @lucaswangdev, @lyl625760, @malone6, @night-cruise, @noobcodemaker, @nuomi1, @qingpeng9802, @reeswell, @sjinzh, @syd168, @theNefelibatas, @wenjianmin, @zhouLion 对该版本的贡献!

原文 中文

hello-algo-typing-svg
动画图解、一键运行的数据结构与算法教程

简体中文 | 繁體中文English日本語Русский

关于本书

本项目旨在打造一本开源免费、新手友好的数据结构与算法入门教程。

  • 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。
  • 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。
  • 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。

若本书对您有所帮助,请在页面右上角点个 Star :star: 支持一下,谢谢!

推荐语

“一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。”

—— 邓俊辉,清华大学计算机系教授

“如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!”

—— 李沐,亚马逊资深首席科学家

贡献

本开源书仍在持续更新之中,欢迎您参与本项目,一同为读者提供更优质的学习内容。

  • 内容修正:请您协助修正或在评论区指出语法错误、内容缺失、文字歧义、无效链接或代码 bug 等问题。
  • 代码转译:期待您贡献各种语言代码,已支持 Python、Java、C++、Go、JavaScript 等 12 门编程语言。
  • 翻译审阅:欢迎您参与本项目的多语言翻译与校对工作,帮助更多读者用母语学习数据结构与算法。

欢迎您提出宝贵意见和建议,如有任何问题请提交 Issues 或微信联系 krahets-jyd

感谢本开源书的每一位撰稿人,是他们的无私奉献让这本书变得更好,他们是:

License

The texts, code, images, photos, and videos in this repository are licensed under CC BY-NC-SA 4.0.