如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理。如果只开一门课,那剩下的就一定是:数据结构与算法。Niklaus Wirth说:算法+数据结构=程序,不说废话了,下面列出一份数据结构算法书目,先从最著名的说起
A
原书名:The Art of Computer Programming
中文名:计算机程序设计艺术
作者:Donald E.Knuth
难度:*****
个人评价:*******
推荐程度:****
本 书是算法分析的经典名作(用经典不太恰当,应该是圣经或史诗),被科学美国人列为20世纪12大科学名著之一(和Dirac的量子力学,Einstein 的广义相对论,von Neumann 的博弈论的著作等齐名)。其亮点在于其超乎寻常的数学技巧,要求读者拥有极高的数学修养,只要你坚持忍耐,一旦读懂了,你的算法和程序设计水平也会达到更 高的档次,你会对程序设计有一种截然不同的体会和领悟,就是“道”(Tao)。书的排版很漂亮(得益于作者的Tex系统),看起来很舒服。作者的文笔很 好,写得生动活泼,读起来荡气回肠(英文版)。习题多且精华,触及算法和程序本质,书后有几乎所有习题的答案(占了整全书篇幅的1/4),书中的分析方法 体现了作者严谨的风格。不过本书的程序不是用我们熟悉的高级语言描述的,而是作者设计的MIX语言。整套书原计划出七卷,现在出了三卷:基本算法,半数值 算法,排序和搜索,第四卷组合算法跳票了20年,Knuth称在2008年推出。本书有中文版,不过建议读者选用英文版,因为都学到这个程度了,英语应该 不会有大困难了。引用一句话“在我们的有生之年,可能会看到C++的消亡,但Knuth和他的程序设计艺术,将永远留在我们的心里。”
B
原书名:Introduction to Algorithms
中文名:算法导论
作者:Thomas H.Cormen,Charles E.Leiserson,Ronald L.Rivest,Clifford Stein
难度:***
个人评价:*****
推荐程度:*****
本 书俗称CLRS(作者名字的简写),算法的经典教材,堪称算法分析著作中的“独孤九剑”。作者之一Ronald L.Rivest 由于其在公开秘钥密码算法RSA上的贡献获得了ACM图灵奖。全书内容全面,结构清晰,6个部分1000多页把数据结构算法的主要内容都包含了。作者用图 表,伪码解释每一个算法,通俗易懂而不失严谨性,英文比较简单,语言流畅,因此,与TAOCP相比,这本书更适合初学者,不要求读者拥有很强的数学背景和 丰富的编程经验。书中习题安排合理,难度适中,在网上有全部习题的答案,网上还有作者在MIT讲述本书的课程的录像,可谓资源丰富,值得注意的是书中每一 章后面都有一个Chapter notes,了解一下历史,看一下作者推荐的材料是不错的(如果你能找到的话)。
C
原书名:The Design and Analysis of Computer Algorithms
中文名:算法设计与分析
作者:Aho,Hopcroft,Ullman
难度:****
个人评价:*****
推荐程度:*****
该 书写于1976年,作者Hopcroft是 1986年ACM图灵奖得主,这三个人写过很多书,大多数都是经典,于一般的算法书不同,该书侧重于证明算法的正确性和复杂性,而不是怎样实现和应用算 法,叙述上更加形式化,属于定义-引理-定理的数学书风格,认真研究一下里面的证明能大大提高理论水平。如果你看完了CLRS或其他数据结构入门书,要深 入学习算法,但TAOCP看起来又太吃力的话,这本比较适合。最后一点是书中的习题很精华,即使你不看这本书,做一下里面的习题也是非常有意思的
D
原书名:Data Structures and Algorithms
中文名:数据结构与算法
作者:Aho,Hopcroft,Ullman
难度:***
个人评价:****
推荐程度:****
上面那本书的姐妹篇,内容就简单很多了,该书写法有个特点就是每一个主题都从一个基本的观念出发,然后再逐渐深入讨论,这样做能使解释更清晰,富有启发性。不过这本书写于20年前,所以有一些高级内容如红黑树是没有的,拿这本书做教材的读者最好同时拿一本较新的来做参考。
E
原书名:Algorithms in C,Algorithms in C++,Algorithms in Java
中文名:算法I-IV(C实现),算法V(C实现)(C++实现)(Java实现)
作者:Robert Sedgewick
难度:***
个人评价:****
推荐程度:****
Robert Sedgwick是Knuth的学生,现在是princeton的教授。这是三个系列,与上面用伪码描述算法不同,本书用现今流行的语言 C,C++,Java描述.那么选拿哪一种语言好呢?从算法的角度看,任何高级语言都是没区别的,虽然实现算法的时候,到了语言相关的层面会有一些细微区 别,但影响不大。个人推荐C++的,因为价钱最便宜:)。本书的一个特点就是例子取得很好,代码很清晰。有中文版
F
原书名:Algorithms Design Techniques and Analysis
中文名:算法设计技巧与分析
作者:M.H.Alsuwaiyel
难度:****
个人评价:****
推荐程度:****
这本书对一般算法书较少涉及的概率算法和近似算法作了重要的补充
G
原书名:Introduction to The Design & Analysis of Algorithms
中文名:算法设计与分析基础
作者:Anany Levitin
难度:***
个人评价:****
推荐程度:****
算法书的另一种写法,以方法为主线,如Brute-Force, Divide-and-Conquer, Greedy techniques,书里面有很多有趣的习题
H
原书名:Data Structures, Algorithms, and Applications in C++
中文名:数据结构算法与应用-C++语言描述
作者:Sartej Sahni 译者:汪诗林等
难度:***
个人评价:***
推荐程度:***
不 少人推荐这本书,但我个人觉得这书不怎么样,中文版翻译水平差强人意,数据结构算法部分把该讲的都讲了,但没什么突出的地方,反而C++倒说了不少,代码 的水平也不怎么样。从ACCU的评价上看,书中的实现与BOOST和STL相比相去甚远。不过这书有很多实际问题,可以看一看。
I
原书名:
中文名:算法与数据结构
作者:傅清祥 王晓东
难度:***
个人评价:****
推荐程度:****
这本是国人写的最好的数据结构算法书之一,讲得很细致。最后的三章:复杂性,并行算法,高级专题有一些有趣的东西,是这些高级内容的很好的导论。
J
原书名:
中文名:数据结构(C语言版)
作者:严蔚敏 吴伟民
难度:***
个人评价:***
推荐程度:***
另一本写的较好的中文数据结构算法书,这本书特别适合考试用(没有任何轻视的意思)
上面的书适合哪些人(我只是学生,这只是个人意见)
做学术研究:A+C+F
学过初级课程要深入:C+F+(I后三章)
在职或讲求实用:E
入门:B或D
程序设计竞赛:B+G+(I前八章)
考研或程序员考试:J
分享到:
相关推荐
《Java版数据结构与算法分析第二版》是一本深入探讨数据结构和算法的书籍,主要针对使用Java编程语言的学习者。这本书旨在帮助读者理解和掌握如何有效地设计和分析各种数据结构和算法,这对于提升编程能力、优化程序...
- **章节简介**:本附录推荐了一些进一步学习数据结构与算法的资源和书籍。 - **核心知识点**: - 推荐书籍列表 - 相关在线课程链接 综上所述,《数据结构与算法分析Java版》不仅涵盖了数据结构与算法的基础知识...
王教授引用了《算法与数据结构——C语言描述》作为主要教材,并推荐了《数据结构》(许卓群)和《数据结构与算法分析(C++版)》作为参考书籍。 问题求解是计算机科学的基础,它涉及将实际问题转化为计算机可处理的...
CHM文件,分成3部分。文件太大 包括算法导论、数据结构(C语言版)等 值得收藏
通过阅读《数据结构与算法实战》这样的书籍,开发者不仅可以掌握理论知识,还能学习到如何将这些知识应用于实际项目,解决实际问题,从而提升自己的编程技能。无论是开发后台服务、设计前端交互,还是构建数据密集型...
《数据结构与算法分析(Java版)》是Robert Lafore所著的一本深入浅出、易于理解的数据结构和算法入门书籍。本书通过丰富的插图和直观的解释,为读者提供了在实际编程中处理数据的有效方法,特别适合那些已经掌握了如...
虽然有许许多多关于数据结构与算法的书籍,但是这些书籍通常都是大学教材,而且是用在大学里经典讲授的Java语言或C++语言编写的。C#语言正在成为一种广受欢迎的编程语言。这本书为C#语言程序员提供了学习基础数据...
数据结构算法书籍推荐.doc
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件系统至关重要。这个名为“数据结构与算法综合资料库”的压缩包,显然包含了一系列关于这个主题的丰富资源,特别是以CHM(Compiled HTML Help)格式提供...
《数据结构与算法分析——C++描述(第四版)》由Mark Allen著,是四川大学考研推荐的教材之一,通常在计算机科学研究生入学考试中占有重要地位。 这本书籍深入浅出地介绍了各种数据结构,包括但不限于数组、链表、...
《数据结构与算法分析(Java版)》由Robert Lafore撰写,是一本深入浅出介绍数据结构与算法的书籍。该书面向已经具备基本编程能力的学习者,通过丰富的Java示例来阐述如何高效地操作数据。 #### 二、数据结构与算法...
总之,《数据结构与算法 面向对象的C++设计模式》是一本非常值得推荐的学习资料。无论是对于初学者还是有一定基础的开发者来说,都能从中获益良多。通过对本书的学习,不仅能打下坚实的数据结构和算法基础,还能深刻...
《数据结构与算法分析(Java版本)》是一本介绍如何利用Java语言处理实际问题中的数据结构和算法的专业书籍。作者Robert Lafore以其独特的写作风格,通过轻松易懂的方式向读者介绍了数据结构与算法的基础知识,并...
《Java数据结构与算法分析》不仅适合初学者入门学习,也适合有一定基础的开发者作为参考书籍。书中通过丰富的实例和直观的图形展示,使复杂的概念变得易于理解。此外,书中的“工作坊小程序”部分提供了动态的Java...