数据结构与算法书籍推荐
2019独角兽企业重金招聘Python工程师标准>>>
原文地址:http://www.oschina.net/question/587367_156025
学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。在这里列出一些我看过或者准备看的算法书籍,以供参考。
第一名
原书名:The Art of Computer Programming
中文名:计算机程序设计艺术
作者:Donald E.Knuth
难度:★★★★★
个人评价:★★★★★
推荐程度:★★★
本书是算法分析的经典名作(用经典不太恰当,应该是圣经或史诗),被科学美国人列为20世纪12大科学名著之一(和Dirac的量子力学,Einstein 的广义相对论,von Neumann 的博弈论的著作等齐名)。其亮点在于其超乎寻常的数学技巧,要求读者拥有极高的数学修养,只要你坚持忍耐,一旦读懂了,你的算法和程序设计水平也会达到更高的档次,你会对程序设计有一种截然不同的体会和领悟,就是“道”(Tao)。
书的排版很漂亮(得益于作者的Tex系统),看起来很舒服。作者的文笔很好,写得生动活泼,读起来荡气回肠(英文版)。习题多且精华,触及算法和程序本质,书后有几乎所有习题的答案(占了整全书篇幅的1/4),书中的分析方法体现了作者严谨的风格。不过本书的程序不是用我们熟悉的高级语言描述的,而是作者设计的MIX语言。
整套书原计划出七卷,现在出了三卷:基本算法,半数值算法,排序和搜索,第四卷组合算法跳票了20年,Knuth称在2008年推出。本书有中文版,不过建议读者选用英文版,因为都学到这个程度了,英语应该不会有大困难了。
引用一句话“在我们的有生之年,可能会看到C++的消亡,但Knuth和他的程序设计艺术,将永远留在我们的心里。”
第二名
原书名: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,了解一下历史,看一下作者推荐的材料是不错的(如果你能找到的话)。
第三名
原书名:Data Structures and Algorithms Analysis in C/C++/JAVA
中文名:数据结构与算法分析——C语言描述/C++描述/Java语言描述
作者:Mark Allen Weiss
难度:★★★
个人评价:★★★★★
推荐程度:★★★★★
《数据结构与算法分析——C语言描述》(Data Structures and Algorithms Analysis in C)第二版,Mark Allen Weiss著,天津师范大学冯舜玺译,机械工业出版社。Weiss教授的数据结构经典教材三部曲之一,其中的C语言描述版本,也就是本书,被称为20世纪最重要的30本计算机教材之一。Mark Allen Weiss(马克?爱伦?韦斯),1987年在普林斯顿大学获得计算机科学博士学位,师从著名算法大师Robert Sedgewick,现任美国佛罗里达国际大学计算与信息科学学院教授。他曾经担任全美AP(Advanced Placement)考试计算机学科委员会的主席(2000-2004)。他的主要研究方向是数据结构,算法和教育学。中文版翻译质量很好。数学公式太多。网上可以下载书中代码,但是没有输出结果,也没有习题答案。
《数据结构与算法分析——C++描述》(Data Structures and Algorithms Analysis in C++)第三版,Mark Allen Weiss著,张怀勇等译,机械工业出版社。Weiss教授的数据结构经典教材三部曲之一。
《数据结构与算法分析——Java语言描述》(Data Structures and Algorithms Analysis in Java)第二版,Mark Allen Weiss著,天津师范大学冯舜玺译,机械工业出版社。Weiss教授的数据结构经典教材三部曲之一。
第四名
原书名:Introduction to The Design & Analysis of Algorithms
中文名:算法设计与分析基础
作者:Anany Levitin
难度:★★★
个人评价:★★★★
推荐程度:★★★★
算法书的另一种写法,以方法为主线,如Brute-Force, Divide-and-Conquer, Greedy techniques,书里面有很多有趣的习题
第五名
原书名:Data Structures, Algorithms, and Applications in C++
中文名:数据结构算法与应用-C++语言描述
作者:Sartej Sahni 译者:汪诗林等
难度:★★★
个人评价:★★★
推荐程度:★★★
不少人推荐这本书,但我个人觉得这书不怎么样,中文版翻译水平差强人意,数据结构算法部分把该讲的都讲了,但没什么突出的地方,反而C++倒说了不少,代码的水平也不怎么样。
从ACCU的评价上看,书中的实现与BOOST和STL相比相去甚远。不过这书有很多实际问题,可以看一看。
第六名
原书名: Programming Pearls
中文名: 编程珠玑
作者: Jon Bentley
难度:★★★
个人评价:★★★★
推荐程度:★★★★
编程珠玑:学习算法不仅需要像Alogrithms,算法导论这样的重量级的内功心法,像《编程之美》、《编程珠玑》这样的轻量级的轻功身法也必不可少。
前些年网上不是很流行像“给你10亿个数,找到最大的n个”或者“给你10亿个数,找出现次数最多的那个数”之类的百度面试题吗?看了此书你就知道怎么解决了。
相比于《编程之美》来说,本书中的示例技巧性略低一些,但是也更有实际应用价值一些。
第七名
原书名:Algorithm Design
中文名: 算法设计
作者: Jon Kleinberg / Éva Tardos
难度:★★★
个人评价:★★★★
推荐程度:★★★★
Algorithm Design 算法设计 很经典的一本书,很久之前看的。个人觉得“算法设计”比“算法导论”好。
- 纸更好,看起来舒服多了。
- “算法导论”太详细了,如果纠结与细节经常导致失去重点。“算法设计”只有关键的过程证明,反而容易掌握重点。
我是先看到“算法导论”后看的“算法设计”,看“算法设计”的时候还是很享受这本书的,同时也把知识巩固了一遍
第八名
原书名:算法艺术与信息学竞赛
中文名: 算法艺术与信息学竞赛
作者: 刘汝佳
难度:★★★
个人评价:★★★★
推荐程度:★★★★
算法艺术与信息学竞赛:如果算法导论是九阳神功,那这本无疑就是九阴真经。
本书是专为参加一些诸如ACM之类程序设计比赛的同学而写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。
第九名
原书名: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++的,因为价钱最便宜:)。本书的一个特点就是例子取得很好,代码很清晰。有中文版
第十名
原书名:Algorithms Design Techniques and Analysis
中文名:算法设计技巧与分析
作者:M.H.Alsuwaiyel
难度:★★★★
个人评价:★★★★
推荐程度:★★★★
这本书对一般算法书较少涉及的概率算法和近似算法作了重要的补充
第十一名
原书名:
中文名:算法与数据结构
作者:傅清祥 王晓东
难度:★★★
个人评价:★★★★
推荐程度:★★★★
这本是国人写的最好的数据结构算法书之一,讲得很细致。最后的三章:复杂性,并行算法,高级专题有一些有趣的东西,是这些高级内容的很好的导论。
第十二名
原书名:
中文名:数据结构(C语言版)
作者:严蔚敏 吴伟民
难度:★★★
个人评价:★★★
推荐程度:★★★
无需解释。
转载于:https://my.oschina.net/u/2820842/blog/1803211
数据结构与算法书籍推荐相关推荐
- 从大学入门到研究生拿大厂offer,必须看的数据结构与算法书籍推荐,不好不推荐!
点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了3个月总结的一线大厂Java面试总结,本人已拿腾 ...
- 数据结构与算法书籍推荐(7本)
一.<数据结构教程> 1996年华中科技大学出版社出版的图书 <数据结构教程>用精练.流畅的语言详述了数据结构的基本概念.基本思想.基本原理及实际背景.共分十章,内容包括:绪论 ...
- 经典算法书籍推荐以及算法书排行【算法四库全书】
经典算法书籍推荐以及算法书排行[算法四库全书] 作者:霞落满天 https://linuxstyle.blog.csdn.net/ https://blog.csdn.net/21aspne ...
- 数据结构与算法视频推荐
数据结构与算法视频推荐,小甲鱼数据结构与算法 https://www.bilibili.com/video/av2975983/index_1.html#page=1
- 数据结构与算法书籍、视频、项目、网站、刷题技巧推荐(2021 年持续更新)...
今天整理出一些算法相关学习资源,包括书籍.算法刷题网站.项目资源.视频课程.面试要领这5个方面. 首先介绍一下技术书阅读方法论. 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速 ...
- 数据结构与算法书籍、视频、项目、网站、刷题技巧推荐(2021 年持续更新)......
今天整理出一些算法相关学习资源,包括书籍.算法刷题网站.项目资源.视频课程.面试要领这5个方面. 首先介绍一下技术书阅读方法论. 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速 ...
- 数据结构算法书籍推荐(转贴)
如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法, 编译原理.如果只开一门课,那剩下的就一定是:数据结构与算法.Niklaus Wirth说:算法+数据结构=程序,不说废话了,下 ...
- ACM算法书籍推荐zz
2019独角兽企业重金招聘Python工程师标准>>> 我常感叹到,学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读 ...
- 算法书籍推荐及网络资源
The Art of Computer Programming 作者:Donald E. Knuth 出版社: 中文版由国防大学出版社发行,中文译本书名为 ...
最新文章
- MATLAB实战系列(三十七)-MATLAB基于PQ解耦风电场并网潮流计算
- 关于Entity Framework中的Attached报错相关解决方案的总结
- 2019.6.16完成classstack任务
- dubbo中log4j检查(开发环境中建议设置为false)
- HAProxy用法详解 全网最详细中文文档
- 平时碰到的一些编程题
- TensorFlow 中的 tf.train.exponential_decay() 指数衰减法
- 关于iptables配置的心得
- html求视频的原尺寸,PR怎样导出原尺寸视频?
- 无线桥接显示dhcp服务器没有开启,桥接提示“获取IP地址失败,请检查主路由器DHCP服务器是否开启”...
- contiki-6lowpan开发环境之搭建
- UVM中uvm_sequencer的方法总结
- Ian Goodfellow回忆GAN诞生故事:几杯啤酒喝出“20年来最酷的深度学习想法”
- 数据元素、数据项、数据对象的概念详解
- AD633JRZ-ASEMI代理ADI亚德诺AD633JRZ车规级芯片
- c#dataview遍历_c# – 列出DataView
- Mysql面试题整理
- 2020.1.14课程摘要(逻辑教育-王劲胜)
- 计算机专业大专毕业设计,大专计算机专业毕业论文设计.doc
- globle php,php中global与$GLOBAL的区别分析
热门文章
- 白话Elasticsearch61-进阶篇之基于Term Vectors深入探查数据的情况
- Oracle-数据泵expdp/impdp实操
- 和get redis_Redis练习操作
- java对mysql排序_MySQL 排序
- php留言板项目经验,php工程师简历项目经验填写样本
- java string转bytebuf,如何将Java字符串转换为字节[]?
- core部署iis的 调试net_远程调试远程 IIS 计算机上的 ASP.NET Core - Visual Studio | Microsoft Docs...
- 什么地方容易刷出ak_男人会用什么理由拒绝表白?
- python和c语言的对比_类C语言与Python负数除法求值间的差异
- java 环境配置 mac_Java:配置环境(Mac)——JDK