每一个高楼大厦都有一个非常坚固的地基,这些热火朝天的大模型都是基于很多基础的算法来逐步构建而成的,算法也是离不开数据结构的,这些大模型也都使用了很多非常高效的数据结构来实现其中的一些功能组件。因此,我觉得在学习这些大模型的时候,我们也非常有必要学习好一些基础算法,就是我们熟知的数组和链表、栈和队列、树结构、排序等等。
不过在一些同学看来,算法十分枯燥,比较难以理解,算法的学习也劝退了一些人。今天我就要开始打破这个”局面“了,推荐一本非常好的算法入门图书,其特点就是动画图解,可运行、可提问的算法入门书——《Hello算法》。
这本书都讲了啥
作为一本超友好的算法书,它涵盖的算法和数据结构知识可以说是非常全面。我们来看一张高清大图:
可以看得出内容十分丰富,全书一共16个章节,基本上涵盖了所有常见算法,比如数组和链表、搜索和排序等等。某一章节比较薄弱的同学可以选择特定的章节进行学习,还是比较方便的(不过还是推荐循序渐进地学习)。
(本书目录概览)
五大特色
个人在学习这本书的时候觉得特色还是很多的,请允许我来和大家多嘴几句。首先《Hello算法》这本书的作者旨在通过动画图解、可运行和可提问的方式,帮助初学者轻松入门数据结构与算法,这个是作者的根本目的,这个是不变的。
其主要特点如下:
1.这本书是一开源的项目孵化而来,目前该项目支持多种编程语言,包括“Java、C++、Python、Go、JS、TS、C#、Swift、Zig”等。
2.实体书出版使用的语言是Python,简单易学的Python语言更有利于大家将学习放在理论基础和编程实践上。
3.动画图解超详细,本书对应的项目通过动画图解使得内容清晰易懂、学习曲线平滑,最大程度上引导初学者探索数据结构与算法的原理和本质,把握算法的核心知识。
4.源代码可一键运行,项目提供了可运行的示例代码,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构的底层实现。
5.可提问互动,学习者可以通过网页版里项目地址提供的互动环节,提出问题、参与讨论,加深对算法的理解。使用《Hello算法》来提升自身算法能力的人很多,大家可以一起交流和学习,让学习算法不再孤独。
另外,我觉得这本书有一个非常值得称赞的地方就是:书中的代码部分注释的非常的详细,这对于零基础的小伙伴真的很友好,这也是这本书的一个特别之处。毕竟代码注释也是一份细致的工作,比如在讲解图的遍历实践时:
作者基本上对代码的每一行都进行了注释,看到这样的代码有一种透心的舒服,这对新手的学习真的是一份巨大的宝藏,不得不称赞作者的认真。这也是我为什么喜欢和推荐这本书的原因。而且详细的注释对于理解算法的原理也是非常有帮助的,平时写代码的时候希望大家都要养成注释的好习惯。
图书强大之处
上面提到这本书是源自一个开源项目,其项目地址如下:
目前该项目已经获得近65K的Star和8k的forks,这足以说明该项目的强大,项目的详细程度也非常的棒。
动画图解算法也是这本书更加强大的一个原因:
这些动图(出版的图书是动图分步拆解的)在很大的程度上帮助学习者更好地弄清算法的运行过程,理解算法的本质。
一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。
——邓俊辉,清华大学计算机系教授
“如果我当年学数据结构与算法的时候有《Hello算法》,学起来应该会简单10倍!”
——李沐,亚马逊资深首席科学家
哈哈,其实我想说,有了《Hello算法》我学数据结构与算法简单了20倍(狗头保命)。
适合谁读?
学习算法更多的在于学习算法的原理,动手实践更多的是提升自己的工程能力。那么这本书适合什么样的读者呢?从读者的角度上来看,我觉得适合以下这类读者:
算法初学者:从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与不会之间反复横跳,那么本书正是为你量身定制的!
算法中高级以上:已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系。
算法爱好着:算法爱好者就纯粹的爱好了吧。
但是不管你处于哪种学习阶段,相信这本书都会在你学习算法的路上给予你无限的支持和帮助,如果你正在为算法学习发愁,那么就来试试这本~