如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,
编译原理
。如果只开一门课,那剩下的就一定是:数据结构与算法
。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
个人感觉看哪本书来学习,完全是依据个人想深入学习的程度。
分享到:
相关推荐
数据结构算法书籍推荐.doc
PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 ...
JS 数据结构与算法.pdf 本书主要介绍了 JavaScript 语言的基础知识,包括数据结构和算法。以下是该书的详细知识点: 一、JavaScript 基础知识 * 变量和数据类型 * 运算符和控制结构 * 函数和对象 * 数组和字符串 ...
python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法python数据结构与算法...
数据结构与算法.pdf
在编程领域,数据结构与算法是核心组成部分,它们直接影响到程序的效率和性能。Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点...
本课件是一个动态演示数据结构算法执行过程的辅助教学软件, 它可适应读者对算法的输入数据和过程执行的控制方式的不同需求, 在计算机的屏幕上显示算法执行过程中数据的逻辑结构或存储结构的变化状况或递归算法执行...
数据结构与算法是计算机科学的基础,它涉及到如何有效地组织和管理数据,以便进行高效地查找、存储和处理。本资源包含的数据结构与算法课后习题答案,是学习这一领域的重要辅助材料,可以帮助学生深入理解和巩固所学...
除了这些经典之作,合集中可能还包括其他关于特定数据结构(如栈、队列、树、图)和算法(如递归、分治、贪心、回溯)的专业书籍。这些书籍将详细阐述每种数据结构的特性、操作以及适用场景,并探讨不同算法的效率和...
《Java版数据结构与算法分析第二版》是一本深入探讨数据结构和算法的书籍,主要针对使用Java编程语言的学习者。这本书旨在帮助读者理解和掌握如何有效地设计和分析各种数据结构和算法,这对于提升编程能力、优化程序...
"数据结构和算法分析 C++版 第三版" 本资源是《数据结构和算法分析 C++版 第三版》的摘要信息,作者是Clifford A. Shaffer,来自 Virginia Tech 的计算机科学系。该书将数据结构和算法分析的基本概念和技术进行了...
数据结构与算法是计算机科学的基础,对于理解和设计高效的软件至关重要。C语言因其高效、底层特性,常被用于实现数据结构和算法,使得程序更接近硬件,性能更优。本资源"数据结构与算法分析--C语言描述"是针对数据...
王厚峰教授在课程中推荐了两本参考书籍,一本是《数据结构》(许卓群),另一本是《数据结构与算法分析(C++版)》。这两本书籍是学习算法与数据结构的宝贵资源,它们涵盖了从基础概念到复杂应用的各个方面,并且...
《数据结构算法与应用-C语言描述》这本书籍,旨在帮助读者深入理解数据结构和算法,并通过C语言来实践这些理论。 一、数据结构 1. 线性数据结构:包括数组、链表(单链表、双链表)、队列和栈。数组是最基本的数据...
《数据结构》算法实现与分析高一凡(第二版)是一本深入探讨数据结构与算法的书籍,由知名计算机教育专家高一凡编著。这本书是第二版,相较于第一版,可能包含了更多更新的内容和实践案例,以适应不断发展的信息技术...
数据结构与算法,讲述基本的数据结构和待机估计,还有简单的算法和复杂度计算
《数据结构与算法(C#版)》是一本旨在通过C#语言来介绍数据结构与算法原理的书籍。随着C#语言和.NET Framework的发展,这本书不仅填补了国内以C#语言讲解数据结构的空白,还为读者提供了在.NET平台上实现数据结构与...
1000多页的算法题解,包含数据结构,排序,查找,递归,回溯算法,二叉树,动态规划,贪心算法,双指针,滑动窗口,前缀和等。
数据结构、算法与应用是计算机科学中的核心领域,它们对于理解和解决复杂问题至关重要。C++是一种强大且灵活的编程语言,常被用于实现这些概念,因为它提供了底层控制和高效的执行能力。本资料集以C++语言为载体,...