|
|
|
# 关于本书
|
|
|
|
|
|
|
|
本项目致力于构建一本开源免费、新手友好的数据结构与算法入门书。
|
|
|
|
|
|
|
|
- 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑;
|
|
|
|
- 算法源代码皆可一键运行,支持 Java, C++, Python, Go, JS, TS, C#, Swift, Zig 等语言;
|
|
|
|
- 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论一般能在两日内得到回复;
|
|
|
|
|
|
|
|
## 读者对象
|
|
|
|
|
|
|
|
如果您是「算法初学者」,完全没有接触过算法,或者已经有少量刷题,对数据结构与算法有朦胧的理解,在会与不会之间反复横跳,那么这本书就是为你而写!
|
|
|
|
|
|
|
|
如果您是「算法老手」,已经积累一定刷题量,接触过大多数题型,那么本书可以帮助你回顾与梳理算法知识体系,仓库源代码可以被当作“刷题工具库”或“算法字典”来使用。
|
|
|
|
|
|
|
|
如果您是「算法大佬」,希望可以得到你的宝贵意见建议,或者[一起参与创作](https://www.hello-algo.com/chapter_appendix/contribution/)。
|
|
|
|
|
|
|
|
!!! success "前置条件"
|
|
|
|
|
|
|
|
您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。
|
|
|
|
|
|
|
|
## 内容结构
|
|
|
|
|
|
|
|
本书主要内容有:
|
|
|
|
|
|
|
|
- **复杂度分析**:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算方法、常见类型、示例等。
|
|
|
|
- **数据结构**:常用的基本数据类型,数据在内存中的存储方式、数据结构分类方法。数组、链表、栈、队列、散列表、树、堆、图等数据结构,内容包括定义、优劣势、常用操作、常见类型、典型应用、实现方法等。
|
|
|
|
- **算法**:查找算法、排序算法、搜索与回溯、动态规划、分治算法,内容包括定义、使用场景、优劣势、时空效率、实现方法、示例题目等。
|
|
|
|
|
|
|
|
![Hello 算法内容结构](about_the_book.assets/hello_algo_mindmap.png)
|
|
|
|
|
|
|
|
## 致谢
|
|
|
|
|
|
|
|
本书的成书过程中,我获得了许多人的帮助,包括但不限于:
|
|
|
|
|
|
|
|
- 感谢我在公司的导师李汐博士,在一次畅谈时您告诉我“觉得应该做就去做”,坚定了我写这本书的决心。
|
|
|
|
- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角提出了许多建议,使这本书更加适合初学者来阅读。
|
|
|
|
- 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。
|
|
|
|
- 感谢苏潼为本书设计了封面和 LOGO ,在我的强迫症下前后多次帮忙修改,谢谢你的耐心。
|
|
|
|
- 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 [Material-for-MkDocs](https://github.com/squidfunk/mkdocs-material/tree/master) 。
|
|
|
|
|
|
|
|
本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》很大影响,也在此向各位同学强烈推荐这本著作,包括[中文版](https://github.com/d2l-ai/d2l-zh)、[英文版](https://github.com/d2l-ai/d2l-en)、[李沐老师 bilibili 主页](https://space.bilibili.com/1567748478)。
|
|
|
|
|
|
|
|
在写作过程中,我阅读了许多数据结构与算法的教材与文章,这些著作为本书作出了很好的榜样,保证了本书内容的正确性与质量,感谢各位老师与前辈的精彩创作!
|
|
|
|
|
|
|
|
感谢父母,你们一贯的支持与鼓励给了我自由度来做这些有趣的事。
|