Products
GG网络技术分享 2025-03-18 16:10 0
学习数据结构与算法,还是很有必要看几本相关的书籍,但根据不同基础的人,合适看的书也不一样,因此,针对不同层次、不同语言的人,推荐几本市面上口碑不错的书。
1. 入门级
针对刚入门的同学,建议不要急着去看那些经典书,像《算法导论》、《算法》这些比较经典、权威的书。虽然书很好,但看起来很费劲,如果看不完,效果会很不好。所以建议先看两本入门级的趣味书:
《大话数据结构》
《算法图解》
大话数据结构
将理论讲的很有趣,不枯燥。作者结合生活中的例子去对每个数据结构和算法进行讲解,让人通俗易懂。
算法图解
这是一本像小说一样有趣的算法入门书,书中有大量的图解,通俗易懂。
看完上面一本或两本入门级的书,你就会对数据结构和算法有个大概认识和学习。但这些入门级的书缺少细节、不够系统。所以想要深入的学习数据结构和算法,光看这两本书肯定是不够的。
2. 不同语言的教科书
国内外很多大学都是将《数据结构和算法分析》作为教科书。这本书非常系统、严谨、全面,难度适中,很适合对数据结构和算法有些了解,并且已经掌握了至少一门语言的同学学习。针对不同的语言,分别有:
《数据结构与算法分析:C语言描述》
《数据结构与算法分析:C++描述》
《数据结构与算法分析:java语言描述》
如果你不会C、C++、java,会Python或者JavaScript,可以看:
《数据结构与算法JavaScript描述》
《数据结构与算法:Python语言描述》
3. 面试书籍
现在很多大厂的面试都会考算法题,这里推荐几本面试算法书籍:
《剑指offer》
《编程珠玑》
《编程之美》
剑指offer
为面试算法量身定做的一本书。几乎包含了所有常见的、经典的面试题,如果能搞懂书里面的内容,一般公司的算法面试都应该没问题。
编程珠玑
这本书豆瓣评分有9分,评分很高。这本书最大的特色是讲了很多海量数据的处理技巧。其他算法书籍很少涉及海量数据。
编程之美
有些作者是微软工程师,算法题目较难,比较适合要面试Google、Facebook这样的公司的人去看。
4. 经典书籍
现在数据结构与算法最经典的书籍就是:
《算法导论》
《算法》
《计算机程序设计艺术》
这三本书非常经典,但都很厚,看起来比较费劲,估计很少有人能全部看完。但如果想更深入地学一遍数据结构和算法,还是建议去看看。
算法导论
章节安排不是循序渐进,里面有各种算法正确性、复杂度的证明、推导,对数学功底有一定要求,看起来有些费劲。
算法
偏重讲算法。内容不够全面,对数据结构方面的知识讲的不多,动态规划这么重要的知识点却没有讲。
计算机程序设计艺术
这本书包括很多卷,相比于其他书籍有更好的深度、广度、系统性和全面性。但如果你对数据结构和算法不是特别感兴趣,没有很好的数学、算法、计算机基础,很难把这本书读完、读懂。
5. 课外阅读
有些算法书籍也比较适合在平时悠闲的时候翻翻看看:
《算法帝国》
《数学之美》
《算法之美》
这些书都列举了大量的列子来解释说明,非常通俗易懂
#####推荐这二本
要是要简单易懂的,给你推荐一个有意思的《大话数据结构》很通俗易懂,适合c数据结构初学者,要是要稍有难度的,《数据结构算法解析》清华出版的。
也可以看看Robert Sedgewick写的书,简单易懂,很好。
#####从事编程多年,编程新手一般喜欢纠结一个词最好,但学习编程语言最忌讳“贪”。
如何理解这个贪字,新手习惯于找最好的编程语言,最好的入门书籍,代码最完善的入门资料,现在国内软件行业已经非常成熟了,国内的编程软件书籍质量已经得到了极大的提升,所以在选择编程语言的书籍的时候是可以有很多种选择了,有关C语言国内最原始的书籍当属于谭浩强的C语言编程,而且因为当时由于条件限制这本书在很多细节方面值得商榷,但积极意义还是要大于本身的缺陷,国内第一代的程序员几乎都是看着这本书学习编程的,历史意义显得更加积极一些。
C语言的书籍在国内范围内选择空间非常大,最简单的方式直接在商城里面寻找评价量最多的就够了,毕竟现在大家在买书的时候的眼光已经提升了许多,没有必要在这方面纠结太多,每种编程语言的侧重点不是太一样,但是在本质内容上没有什么太大的区别,所以选择一门书制定严格的学习计划就可以开始了,题目的关键是C语言的数据结构而且还要求带源码的,只需要找一本C语言格式的数据结构书籍就可以了。
问题的关键在于需要先能把C语言掌握了,再去谈数据结构模型的事情,有了C语言最基础再去讲究数据结构,直接去操作带有代码的数据结构学习起来非常被动,还是回过头来继续学习C语言的语法,相当于对C语言学习的基础语法进行实践操作,适合刚刚学好基础语法的初学者直接切入进去学习,玩转数据结构之前最好先有指针的基础,指针算是C语言里面非常难的知识点,也是重点知识板块之一,很多人在学习指针之后一头雾水也是非常正常的事情,虽然编程讲求的是实践,但是理论理解也是非常重要一方面。
数据结构是未来编程中最基础的抽象模型,如同设计一个模块就要设计其中的数据结构,这点和数据机构编程过程极其的相似,所以在学习了C语言不知道如何实践的时候,可以直接通过数据结构来完成而且在操作的过程中不断的提升对代码的认知,算是一个小型的实战项目了。如何利用好书本中的代码,很多初学者直接照着书本代码敲到电脑里,这种方法不是很有效。建议先了解基本的理论,掌握了理论之后开始自己写代码无论这个过程如何的痛苦都要去经历,然后再去看实例的代码,再回归到自己写代码,这个过程可以反复。
学习编程很重要的过程是让自己的大脑真正意义上动起来,大脑思考多才能叫真正意义上的脑力劳动,只是对着书本的代码弄到电脑里运行时间长了,很快就能忘记所以还是要手脑一块配合起来工作效率才是高,下功夫也要讲求策略讲求在最短的时间内让大脑真正意义上动起来,并且真正学到编程知识,希望能帮到你。
#####C primer
#####英文版的行不行?
Demand feedback