⑴ java数据结构书籍推荐
1. 入门级
针对刚入门的同学,建议不要急着去看那些经典书,像《算法导论》、《算法》这些比较经典、权威的书。虽然书很好,但看起来很费劲,如果看不完,效果会很不好。所以建议先看两本入门级的趣味书:
《大话数据结构》
《算法图解》
大话数据结构
将理论讲的很有趣,不枯燥。作者结合生活中的例子去对每个数据结构和算法进行讲解,让人通俗易懂。
算法图解
这是一本像小说一样有趣的算法入门书,书中有大量的图解,通俗易懂。
看完上面一本或两本入门级的书,你就会对数据结构和算法有个大概认识和学习。但这些入门级的书缺少细节、不够系统。所以想要深入的学习数据结构和算法,光看这两本书肯定是不够的。
2. 不同语言的教科书
国内外很多大学都是将《数据结构和算法分析》作为教科书。这本书非常系统、严谨、全面,难度适中,很适合对数据结构和算法有些了解,并且已经掌握了至少一门语言的同学学习。针对不同的语言,分别有:
《数据结构与算法分析:C语言描述》
《数据结构与算法分析:C++描述》
《数据结构与算法分析:java语言描述》
如果你不会C、C++、java,会Python或者JavaScript,可以看:
《数据结构与算法JavaScript描述》
《数据结构与算法:Python语言描述》
3. 面试书籍
现在很多大厂的面试都会考算法题,这里推荐几本面试算法书籍:
《剑指offer》
《编程珠玑》
《编程之美》
剑指offer
为面试算法量身定做的一本书。几乎包含了所有常见的、经典的面试题,如果能搞懂书里面的内容,一般公司的算法面试都应该没问题。
编程珠玑
这本书豆瓣评分有9分,评分很高。这本书最大的特色是讲了很多海量数据的处理技巧。其他算法书籍很少涉及海量数据。
编程之美
有些作者是微软工程师,算法题目较难,比较适合要面试Google、Facebook这样的公司的人去看。
4. 经典书籍
现在数据结构与算法最经典的书籍就是:
《算法导论》
《算法》
《计算机程序设计艺术》
这三本书非常经典,但都很厚,看起来比较费劲,估计很少有人能全部看完。但如果想更深入地学一遍数据结构和算法,还是建议去看看。
算法导论
章节安排不是循序渐进,里面有各种算法正确性、复杂度的证明、推导,对数学功底有一定要求,看起来有些费劲。
算法
偏重讲算法。内容不够全面,对数据结构方面的知识讲的不多,动态规划这么重要的知识点却没有讲。
计算机程序设计艺术
这本书包括很多卷,相比于其他书籍有更好的深度、广度、系统性和全面性。但如果你对数据结构和算法不是特别感兴趣,没有很好的数学、算法、计算机基础,很难把这本书读完、读懂。
5. 课外阅读
有些算法书籍也比较适合在平时悠闲的时候翻翻看看:
《算法帝国》
《数学之美》
《算法之美》
这些书都列举了大量的列子来解释说明,非常通俗易懂。
⑵ 过年在家,想要学习电脑编程,有什么好的书籍推荐吗
⑶ 编程珠玑适合什么人看
比较适合中年人,这是一本不可多得的好书,具体好在哪里,我也不太能说清楚。应该算是思路上给我的帮助会是比较大吧。全书总共有十五章,每个章节都很少,但是很实用。先帮你回顾基础知识,然后会让你学到很多的提升性能的一些建议。最后一大部分是一些实际的应用,例如排序、取样问题、搜索、堆、字符串之类的知识。因为都是从解决实际问题入手,所以不会显得很枯燥,让我看得也比较入迷。
拓展:
1、书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。《编程珠玑(第2版)》是计算机科学方面的经典名着。
2、《编程珠玑(第2版)》的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。《编程珠玑(第2版)》对各个层次的程序员都具有很高的阅读价值。
3、Jon Bentley,世界着名计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976-1982)、贝尔实验室(1982-2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles Leiserson在内的许多计算机科学大家。2004年荣获Dr.Dobb's程序设计卓越奖。
⑷ 搞编程的我是个算法渣,怎么样能很快的提升算法水平有什么必要的或者非常基础的算法需要掌握
算法的实现需要你对数据结构有充分的理解,我个人觉得数据结构是算法的基础,至少我是先熟悉数据结构再弄算法的,这样接受起来比较快。所以建议你
1:先花些时间掌握数据结构知识,比如数据结构基本类型;线性表、树、图、集合的存储表示以及他们的应用,而要想熟练运用这些线性表、树、图、集合,那么又必须要非常熟练栈和队列,因为栈和队列是必不可少的,如果你非常熟练运用栈和队列,那么你肯定能轻松搞定牵涉到线性表、树等这些应用的。
2:掌握基本的查找算法和排序算法;因为有了上述数据结构的铺垫,也较容易接受查找和排序算法在计算机内部的组织形式,对于运用计算机思想思考问题有很大的帮助。
3:学习常用的算法思想,如分治、贪心、动态规划、回溯等等。学习之后自己动手找一些题目敲敲代码,刚开始可以按照答案敲,慢慢要丢开答案自己来组织思路了。
4:要熟悉分析算法的复杂度,因为接着要开始思考代价问题了,包括时间和空间的开销。
其实用谁的书都无所谓,只要内容齐全了,而你自己阅读起来接受得更好就用谁的。如果还有时间,推荐你看看朱东生赵建利等的《新编数据结构算法 考研指导》(当时我考研用来辅助看的,里面讲解的递归与非递归之间的转换非常好)。
5:如果有兴趣可以看看《编程珠玑》和《编程之美》,有些企业招聘时会从中挑个别题目出题。
总之,我觉得数据结构是基础,算法是灵魂。多思考,多运用就能熟能生巧了。工科类的不多动动手那些知识是很容易生疏的。
以上观点仅供参考,纯属个人观点。