《{{ book.title }}》封面

Hello 算法

一本动画图解、能跑代码的数据结构与算法入门书。从复杂度分析讲到树、图、排序、回溯、动态规划,每段示例都配可运行的 Java 代码。13 万星的开源教材,零基础也能读。

编程开发20 章12.1 万字9 阅读 作者 靳宇栋(krahets)CC BY-NC-SA 4.0

刷题最大的问题不是题难,是没有地图。你今天刷一道链表、明天刷一道动态规划,每道题都看懂了,但脑子里始终连不成一张网,遇到新题还是从零开始猜。

这本书就是那张地图。它不按「题型」组织,按知识结构组织:先讲复杂度分析(怎么判断一个解法快不快),再讲线性结构(数组、链表、栈、队列、哈希表),再讲树和堆,再讲图,最后才是算法思想(搜索、排序、分治、回溯、动态规划、贪心)。每一节都是「先给一张图 → 再讲为什么 → 再给能跑的代码」。

它的三个特点:

  • 动画图解。全书 500 余张手绘图,把「数组怎么扩容」「链表怎么插节点」「堆怎么上浮下沉」「递归怎么回退」一步步画出来。本站把原作需要点击切换的动画,拆成连续的「第 1 步 / 第 2 步」,手机上直接往下滑就能看完整过程。
  • 代码能跑。所有示例都是完整可编译的 Java 代码(原作提供 12 种语言,本站只保留 Java 版),从仓库的 Java 源码目录按方法名抽取内联,不是伪代码。
  • 明确写给新手。作者在序里说得很直白:这书不足以让你直接拿到 Offer,但会带你摸清「地雷的形状和分布」,让你之后刷题和读文献不再瞎撞。

原书由靳宇栋(krahets)以 CC BY-NC-SA 4.0 协议开源,本站按原许可非商业性转载,正文与代码未改动,仅做多语言示例的取舍与排版适配,署名与仓库链接见页脚。

目录

20 章 · 点章名直接读
  1. 1序0.1 万字6 阅读
  2. 2第 0 章 前言0.3 万字1 阅读
  3. 3第 1 章 初识算法0.3 万字1 阅读
  4. 4第 2 章 复杂度分析1.1 万字0 阅读
  5. 5第 3 章 数据结构0.9 万字0 阅读
  6. 6第 4 章 数组与链表1.0 万字0 阅读
  7. 7第 5 章 栈与队列0.5 万字0 阅读
  8. 8第 6 章 哈希表0.8 万字0 阅读
  9. 9第 7 章 树0.9 万字0 阅读
  10. 10第 8 章 堆0.4 万字0 阅读
  11. 11第 9 章 图0.5 万字0 阅读
  12. 12第 10 章 搜索0.6 万字0 阅读
  13. 13第 11 章 排序1.1 万字0 阅读
  14. 14第 12 章 分治0.6 万字0 阅读
  15. 15第 13 章 回溯0.8 万字0 阅读
  16. 16第 14 章 动态规划1.3 万字0 阅读
  17. 17第 15 章 贪心0.6 万字1 阅读
  18. 18第 16 章 附录0.1 万字0 阅读
  19. 19参考文献0.0 万字0 阅读
  20. 20纸质书0.1 万字0 阅读
觉得有用,转给需要的人:

本页正文转载自开源项目 Hello 算法,按 CC BY-NC-SA 4.0 许可刊载,正文未改动。