`

算法书籍推荐及网络资源 [转]

阅读更多

The Art of Computer Programming
作者:Donald  E.  Knuth
出版社:中文版由国防大学出版社发行,中文译本书名为《计算机程序设计艺术》
作者主页:http://www-cs-faculty.stanford.edu/~knuth/
学习笔记:http://www.cfcs.com.cn/fjas/ebook.htm

简介:简称TAOCP,是算法界公认的"葵花宝典"。这本书被American Scientist评为20世纪科学界最重要的12本学术著作之一,这12本著作中包括Einstein的相对论、Dirac的量子力学、 Mandelbrot的分形理论、Wiener的控制论等,由此可见这本书的价值。该书的作者Donald E. Knuth也是计算机界公认的大师,他是Tex和metafont文件格式的发明者,是编译原理中LR(k)文法分析算法以及其它很多著名算法的发明者。因为他在算法设计和分析领域的贡献,以及他所写的这本TAOCP,他获得了1974年计算机界的诺贝尔奖--图灵奖。
TAOCP原计划要出七册,但是一直到目前为止Knuth只完成了三册,而目前只能找到第一册和第三册的中文版。这本书最初写于60年代,当时还没有流行的高级编程语言,所以 Knuth自己发明了一种称为MIX的汇编语言,书中的算法和代码都用MIX语言描述,因此这本书并不适合初学者使用。现在虽然已经是第三次修订版,但是看来Knuth并不打算用某种高级语言来重写他的书。这本书最大的特点就是语言生动活泼,内容深入浅出,随手翻来读一读也会觉得妙趣无穷。即使不作为学习资料,该书也极具收藏价值,毕竟历史上还没有人像Knuth一样因为写了一本书而得到图灵奖。
推荐程度:五星级
使用语言:MIX
适用对象:适用于有较高水平的读者,初学者不易读懂,但是该书极具收藏价值。

 

 

Introduction to Algorithms
作者:Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest
出版社:中文版书名为《现代计算机常用数据结构和算法》,潘金贵等编译,由南京大学出版社发行。
第二版译名《算法导论》高等教育出版社。
网络资源:http://www.cfcs.com.cn/fjas/ebook.htm

简介:如果说TACOP是算法界的"葵花宝典",那么称这本书为"独孤九剑"必然当之无愧。该书是MIT的电子工程系和计算机系的算法教材,其三个作者也是计算机界赫赫有名的大师。该书的第一部分是算法学习的数学基础知识介绍;第二部分分类介绍常用算法和数据结构;第三部分是高级专题,介绍包括并行算法、 NP问题、近似算法等在内的高级科研专题。其中基础知识部分适合初学者,高级专题部分则适合作为研究生的研究课题。该书的最大特点就是每条算法的设计分析都有严密的证明,看了后给人一种知其然而知其所以然的感觉。该书既可以作为算法学习用书,也可以作为一本算法和数据结构的字典,适合各类读者,十分具有收藏价值。该书使用类似Pascal的伪代码进行描述,并不拘泥于语言的细节,适合使用各种编程语言的读者。
推荐程度:五星级
使用语言:类Pascal的伪代码
适用对象:适合各类读者,极具收藏价值

 

 

算法与数据结构
作者:傅清祥 王晓东
出版社:电子工业出版社
简介:该书是《计算机学科教学计划1993》的配套教材之一。它覆盖了《计算机学科教学计划1993》中开列的关于算法与数据结构主科目的所有知识单元。全书强调"算法"与"数据结构"之间密不可分的联系,因而强调融数据类型与定义在数据类型上的运算于一体的抽象数据类型,为面向对象的程序设计方法打下扎实的基础。该内容丰富,表述详细,适合不同层次的读者。其中基础部分可作为计算机学科专业本科生的教材,高级专题部分可作为高年级本科生或研究生的教材。该书的第一章绪论介绍算法的复杂性和算法表达中的抽象机制,这一章写的尤为经典,受到了不少网友的推崇。该书某些章节和内容摘自前面介绍的那本《Introduction to Algorithms》,但是这本书省略了其中复杂的数学证明,因此更适合于初学者。
推荐程度:五星级
使用语言:Pascal
适用对象:初学编程者,较有经验者,以及要参加各类程序员等级考试的读者

 

 

国际信息学奥林匹克竞赛指导--实用算法的分析与程序设计
作者:吴文虎 王建德
出版社:电子工业出版社
http://oibh.ioiforum.org/download/ebook.htm

简介:该书是中学生信息学奥赛的辅导丛书之一。该书介绍了各种常用的算法和算法设计思想,并以大量的例题和解析详细说明各种算法的具体应用。因为是写给中学生看的,所以该书的语言通俗易懂,不需要太多的数学知识也能够看懂其中大部分的算法。该书的缺点是对算法只给出具体步骤而缺乏严密的理论证明,不过也正是因为这样才使得该书浅显易懂。书中引用了大量信息学竞赛的题目,这些题目很多都是具有实际应用背景的经典问题,具有较高的实用价值。对于参加竞赛的中学生和大学生读者来说,该书是竞赛的必备书,因为该书基本上涵盖了NOI、IOI、ACM/ICPC竞赛的各个方面的内容;对于初学编程者来说,该书内容通俗易懂,深入浅出,例题生动有趣,解析具体详细,是学习编程不可多得的好书之一;对于有经验的编程者来说,该书涵盖的算法非常广泛,可作为算法参考手册使用。
推荐程度:五星级
使用语言:Pascal
适用对象:参加竞赛者,初学编程者,较有经验者,以及要参加各类程序员等级考试的读者

 

 

Computer Algorithms: Introduction to Design and Analysis
作者:Sara Baase,Allen Van Gelder
出版社:影印版由高等教育出版社出版。目前尚未见到有中文版。
网络资源:http://algorithm.lzu.edu.cn/modules.php?name=Downloads
简介:这本书是国外计算机系的经典教材,是中国教育部推荐的国外优秀教材之一,被包括南京大学在内的几所国内著名大学的计算机系作为算法设计课程指定教材。该书的特点是强调算法设计的具体步骤,对每个算法的设计和分析都给出一步一步的思维过程,而不是直接给出结果。该书的第三章对递归思想的描述非常经典,以简单的语言和清晰的表述深入浅出地说明了递归的工作过程和原理。该书的内容也非常新,第三版的第13章介绍了如何用最新的DNA计算机设计算法来解决哈密尔顿路径问题。该书使用类似Java语言的伪代码进行描述,充分利用了面向对象思想来描述抽象的ADT,但并不拘泥于具体的语言细节,学过任何一种高级语言的读者都能够看懂。该书重点在于介绍算法的设计和分析,对数据结构的介绍比较少,所以要和其他的数据结构参考书配套使用。
推荐程度:四星级
使用语言:类Java的伪代码
使用对象:已经学习过数据结构的读者,参加程序员等级考试的读者

 

 

数据结构与算法--面向对象的C++设计模式
英文版书名:Data Structures and Algorithms with Object-Oriented Design Patterns in C++
作者:Bruno R. Preiss
出版社:影印版和中文版由电子工业出版社出版
作者主页:http://www.pads.uwaterloo.ca/Bruno.Preiss/
英文电子版和书中代码下载:
http://www.pads.uwaterloo.ca/Bruno.Preiss/books/opus4/
Java语言版本的英文电子版:
http://www.pads.uwaterloo.ca/Bruno.Preiss/books/opus5/
C#语言版本的英文电子版:
http://www.pads.uwaterloo.ca/Bruno.Preiss/books/opus6
简介:正如书名所显示的,该书的最大特点是以面向对象的C++设计模式来描述数据结构和算法。书中所有的数据结构都以类和对象进行封装,充分体现了抽象数据类型ADT的内在含义。该书既可作为基本算法和数据结构的学习教材,也可作为面向对象的设计模式的经典范例。该书的作者还写了这本书的Java版和C# 版,在作者的主页有该书不同语言版本的英文电子版,可以免费浏览或下载。这本书更适合作为数据结构的教材,作为算法分析的教材内容稍微浅了一点。
推荐程度:四星级
使用语言:有C++,Java,C#不同语言的版本
适用对象:初学编程者,参加程序员等级考试者,以及C++(或java, C#)语言的初学者

 

 

数据结构、算法与应用--C++语言描述
英文版书名:Data Structure, Algorithms, and Application in C++
作者:Sartaj Sahni
出版社:影印版和中文版由机械工业出版社出版
作者主页:http://www.cise.ufl.edu/~sahni/
书中代码和习题答案下载:
http://www.mhhe.com/engcs/compsci/sahni/
该书的Java语言版本主页:
http://www.cise.ufl.edu/~sahni/dsaaj/index.html
简介:这又是一本C++描述的数据结构和算法教材。该教材第一章介绍了一下C++的一些语法,书中所有出现代码的地方都对代码做了较详细的解释,比较适合C ++的初学者作为学习数据结构的教材。该书强调面向对象的思想和设计模式,对常用的ADT进行了封装,并且用大量的实例说明了数据结构和算法的具体应用。该书还有一个用Java语言描述的版本。该书适合初学者作为数据结构的教材。
推荐程度:四星级
使用语言:C++,另有Java语言的版本
适用对象:编程初学者、参加程序员等级考试者以及C++(或Java)语言初学者

分享到:
评论

相关推荐

    毕业设计 - 书籍推荐系统.zip

    Python 作为毕业设计的编程语言具有以下几个显著优点: 1. **简单易学**: ...综合以上优势,Python成为众多高校学生毕业设计项目的首选语言之一,尤其适合那些涉及数据处理、算法实现及系统集成等方向的课题。

    awesome-programming-resources:收集优秀的Java编程资源,涵盖:Java求职面试,书籍,计算机网络,操作系统,架构,算法,前端开发,Redis,Mysql,Nginx,ZK,MQ等

    涵盖:Java求职面试,书籍,计算机网络,操作系统,架构,算法,前端开发,Redis,Mysql,Nginx,ZK,MQ,深度学习等。如果有推荐的教程或资源,欢迎补充。随着时间的推移,知识点难免有出入和错误,欢迎各位提Java ...

    Python免费资源集合AwesomePython.zip

    这个系列没有推荐 Python 书籍、经典博文、交互教程,所以另外推荐:《25本免费的Python电子书》、《学习Python编程的11个(教程)资源》、《PythonMonk:Python交互式教程》、《Python程序员必知必会的开发者工具》...

    逐步回归法matlab代码-Lista-machine-learning:Lista机器学习

    初步回归法matlab代码很棒的机器...-基于scikit-learn算法的混合推荐系统。 -neonrvm是基于RVM技术的开源机器学习库。 它是用C编程语言编写的,并带有Python编程语言绑定。 计算机视觉 -基于C /缓存/核心的计算机视觉库

    高级java笔试题-CS_Learning_List:计算机学习书籍和课程,书籍清单和PDF,视频课程资源

    在这部分,我将对阅读书籍和学习课程进程推荐,在课程中我将附带官网链接,图书则附京东的链接。 程序员的武林秘籍 《微服务:从设计到部署》中文版 《重构_改善既有代码的设计》 《研磨设计模式》 一、数据结构与...

    matlab梁代码-awesome-Books-High-quality:高质量书籍和博客

    经典编程书籍大全,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试等 7.5k 3 pytorch handbook是一本开源的书籍,目标是...

    java8源码-JavaInterview:Java面试

    Java书籍推荐 实战项目推荐 小心翼翼的告诉你,上面的资源当中就有很多企业级项目,没有项目一点不用怕,因为你看到了这个。 说明 JavaInterview介绍 目的很简单,写这些文章,以及整个github的资料,都是为了面试而...

    vc++ 应用源码包_3

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程技术 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等...

    leetcode中文版-BackEndNotes:后端注释

    这是一份后端开发笔记总结与书籍资源分享。主要包括编程语言C++、Go、Python等,数据结构和算法,系统,网络,数据库MySQL、Redis、MangoDB等,设计模式,消息队列Kafka、RocketMQ等,搜索引擎Elasticsearch,系统...

    逐步回归法matlab代码-MachineLearningBooks:机器学习书籍

    初步回归法matlab代码很棒的机器...-基于scikit-learn算法的混合推荐系统。 -neonrvm是基于RVM技术的开源机器学习库。 它是用C编程语言编写的,并带有Python编程语言绑定。 计算机视觉 -基于C /缓存/核心的计算机视觉库

    vc++ 开发实例源码包

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    vc++ 应用源码包_1

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    vc++ 应用源码包_2

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...

    vc++ 应用源码包_6

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...

    vc++ 应用源码包_5

    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...

    java中型项目源码-Machine-Learning-in-Java:Java_code中的机器学习

    在本书的最后,您将探索相关的网络资源和技术,这些资源和技术将帮助您将学习提升到一个新的水平。 代码按章节组织——每一章都是一个单独的 Eclipse 项目,包含所有相应的库和数据集。 章节 应用机器学习快速入门 ...

    python数据分析随书代码

    Ivan Idris以编写简洁可测试的程序代码以及撰写有趣的技术文章为乐,同时也是Packt出版社NumPy Beginner's Guide-Second Edition、NumPy Cookbook和Learning NumPy Array等书籍的作者。读者可以访问ivanidris.net...

    逐步回归法matlab代码-Awesome-Machine-Learning:很棒的机器学习

    初步回归法matlab代码很棒的机器学习 精选的很棒的机器学习框架,库和软件的列表...-基于scikit-learn算法的混合推荐系统。 [不推荐使用] -neonrvm是基于RVM技术的开源机器学习库。 它是用C编程语言编写的,并带有Pyth

    逐步回归法matlab代码-machine:机器

    初步回归法matlab代码很棒的机器学习 精选的很棒的机器学习框架,库和软件的列表(按语言)。...-基于scikit-learn算法的混合推荐系统。 [不推荐使用] -neonrvm是基于RVM技术的开源机器学习库。 它是用C

    逐步回归法matlab代码-AI:人工智能

    初步回归法matlab代码很棒的机器学习 精选的很棒的机器学习框架,库和软件的列表...-基于scikit-learn算法的混合推荐系统。 [不推荐使用] -neonrvm是基于RVM技术的开源机器学习库。 它是用C编程语言编写的,并带有Pyth

Global site tag (gtag.js) - Google Analytics