IT人的算法书单:挖掘程序的灵魂_计算机算法的设计与分析 阿霍pdf-程序员宅基地

技术标签: 算法  数据结构与算法  

IT人的算法书单:挖掘程序的灵魂

薯条酱  2017-05-02 12:10:54  浏览316  评论0

算法 程序员 人工智能 编程 数据结构 书单

点击打开链接


摘要: 算法始源于千百年前,中国古代就有各种的算法,比如今天我们依旧在使用的辗转相除法等等,甚至《九章算术》其实可以称之为一本算法书。在茫茫的书籍的海洋中,有关算法的书籍多不胜数,然而经历过大浪淘沙剩下的才是经典之作,本文就为大家介绍基本算法的相关书籍,希望能帮助大家在探索程序的灵魂之路上不断前行。

我们都知道对于软件而言,最为经典的定义就是程序=算法+数据结构,算法对于软件的重要性不言而喻,甚至可以说算法是程序的灵魂所在。甚至有人说如果计算机系只开设三门课的话,那么一定是:离散数学、编译原理还有算法和数据结构。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。其实对于IT人而言,无时无刻都沉浸在算法之中,小到可能只是对于一个简单的一维数组进行排序,大到使用进行实时个性化推荐或者使用机器学习算法预测未来的发展趋势,这一切都是算法。而算法也在我们的生活中,比如我们小时候最爱举的那个“泡茶”的例子、如何从一堆硬币中通过天平找出假的那枚硬币...


都说相由心生,思维也是一样,IT人的思维往往比较缜密,因为我们的脑袋中其实运行着各种“算法”,不知道你是否也是这样,等电梯时总觉得它的算法存在问题。好了,言归正传,算法始源于千百年前,中国古代就有各种的算法,比如今天我们依旧在使用的辗转相除法等等,甚至《九章算术》其实可以称之为一本算法书。在茫茫的书籍的海洋中,有关算法的书籍多不胜数,然而经历过大浪淘沙剩下的才是经典之作,本文就为大家介绍基本算法的相关书籍,希望能帮助大家在探索程序的灵魂之路上不断前行。


《计算机程序设计艺术》 —— 高德纳 (Donald E.Knuth) 

0bea1d39d7673db2f1372645628731b22cf85583高德纳,计算机科学家,算法与程序设计技术的先驱者、斯坦福大学计算机系荣休教授、计算机排版系统TEX和METAFONT字体系统的发明人,因诸多成就以及大量富于创造力和具有深远影响的著作而誉满全球。

《计算机程序设计艺术》系列著作被公认为是对经典计算机科学的论述,曾在1999年被《美国科学家》期刊评选为20世纪重要的12部学术专著之一。这一宏伟浩大的工程始于1962年,计划出版7卷,目前已经出版了4卷。数十年来,这本书一直是广大学生、研究人员和业内人士学习程序设计理论和实践的无价之宝,书中各处无不体现着作者渊博的学识、严谨的治学态度,以及深刻的洞察力。该套书自出版以来,广受众多科学家的赞许,并对无数读者产生了极其深远的影响。《计算机程序设计艺术》堪称计算机科学领域的瑰宝。从事研究的人惊艳于其精美优雅的分析,而普通程序员则一直在卓有成效地利用书中提供的各种方案解决日常问题。这些书展现了作者的博观、清晰、幽默,所有的人都钦佩不已。高德纳是算法和程序设计领域的先驱者,对计算机科学发展史也有着深入的研究,书中在介绍众多理论的同时,也给出了相关的历史和发展历程,成为本书的一大特色。


《算法导论》 ——  Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein

7f9265dd638f0be3eccfb80fee285e16fed64b16《算法导论》是一本十分经典的计算机算法书籍,与《计算机程序设计艺术》相媲美。该书由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作编著。本书的最大特点就是将严谨性和全面性融入在了一起。本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。本书专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。本书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。《算法导论》内容丰富,对本科生的数据结构课程和研究生的算法课程都是很实用的教材。本书在读者的职业生涯中,也是一本案头的数学参考书或工程实践手册。大学期间,老师给我们的观点是对于这本书可以粗略地全面概览一遍,知道究竟有什么样的算法可以解决什么样的问题,当遇到具体问题需要使用这些算法时再去查找和使用,将《算法导论》当做一本工具书。


《算法》——  Robert Sedgewick, Kevin Wayne

6012325321f61c7950f63e9256954910c6004bf9《算法(第4版)》是Sedgewick之巨著,与高德纳TAOCP一脉相承,几十年多次修订,经久不衰的畅销书,涵盖所有程序员必须掌握的50种算法。该书全面讲述算法和数据结构的必备知识,具有以下几大特色:算法领域的经典参考书:Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系。内容全面:全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法。全新修订的代码:全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用。与实际应用相结合:在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码。富于智力趣味性:简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷。科学的方法:用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的。与网络相结合:配套网站提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源。



《计算机算法的设计与分析》 —— 阿霍,霍普克劳夫特,乌尔曼 

c1bc081bd3e770d5e0d9d3d7b20e434f67a6c3f2《计算机算法的设计与分析》是一部设计与分析领域的经典著作,着重介绍了计算机算法设计领域的基本原则和根本原理。书中深入分析了一些计算机模型上的算法,介绍了一些和设计有效算法有关的数据结构和编程技术,为读者提供了有关递归方法、分治方法和动态规划方面的详细实例和实际应用,并致力于更有效算法的设计和开发。同时,对NP完全等问题能否有效求解进行了分析,并探索了应用启发式算法解决问题的途径。另外,本书还提供了大量富有指导意义的习题。值得一提的是,本书第一作者阿霍,是哥伦比亚大学计算机科学系主管本科生教学的副主任,IEEE Fellow,美国科学与艺术学院及国家工程学院院士,曾获得IEEE的冯·诺伊曼奖。他还是《编译原理》(Compiler:Principles,Techniques,and Tools)的第一作者,其技术能力和影响力可想而知。



《算法设计与分析基础》 —— Anany Levitin

235ce3f9f72b2ae7787272d6fd6a376c20e41311《算法设计与分析基础》在讲述算法设计技术时采用了新的分类方法,在讨论分析方法时条分缕析,形成了连贯有序、耳目一新的风格。此书涵盖算法入门课程的全部内容,更注重对概念(而非形式)的理解。书中通过一些流行的谜题来激发学生的兴趣,帮助他们加强和提高解决算法问题的能力。每章小结、习题提示和详细解答,形成了非常鲜明的教学特色。作者基于丰富的教学经验,开发了一套全新的算法分类方法。该分类法站在通用问题求解策略的高度,对现有大多数算法准确分类,从而引领读者沿着一条清晰、一致、连贯的思路来探索算法设计与分析这一迷人领域。《算法设计与分析基础》十分适合用作算法设计和分析的基础教材,也适合任何有兴趣探究算法奥秘的读者使用,只要读者具备数据结构和离散数学的知识即可。




《算法图解》 —— Aditya Bhargava

590cf634fbcf97d7c4c476ee6a0445a681df49c6《算法图解》是一本像小说一样有趣的算法入门书。算法是解决问题的一步步流程,也是计算机科学领域的核心主题。如今程序员经常使用的算法已经经过了前人的探索、检验及证明。如果你想搞明白这些算法,又不想被困在繁琐的证明中,本书正是你的不二选择。这本图示丰富、引人入胜的实用指南将让你轻松学会如何在自己的程序中高效使用重要的算法。这本书是大家都可以看懂的算法基础书,书中的代码示例基于Python语言,书中涵盖400多个示意图,生动地介绍了算法的执行过程,并且展示了不同算法在性能方面的优缺点,能够帮助编程人员使用常见算法解决每天面临的实际编程问题。书中的前三章将帮助我们打下基础,学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;Kzui近邻算法。




《算法神探:一部谷歌首席工程师写的CS小说》 ——  杰瑞米·库比卡, 啊哈磊, 李嘉浩

04025046f4c013f0792162fe686a06ef00ba7ac6《算法神探:一部谷歌首席工程师写的CS小说》这本书围绕程序设计典型算法,精心编织了一个扣人心弦又趣味横生的侦探缉凶故事。小说主人公运用高超的搜索技巧和精深的算法知识,最终识破阴谋、缉拿元凶。其间,用二分搜索搜查走私船、用搜索树跟踪间谍、用深度优先搜索逃离监狱、用优先队列开锁及用优先搜索追寻线索等跌宕起伏又富含算法精要的情节,让读者在愉悦的沉浸式体验中快速提升境界,加深对程序世界的理解。本书适合开发人员、编程爱好者和相关专业学生阅读,也是少儿计算机科学启蒙的绝佳读物。这本书说是一本算法书,倒不如说是一本科普书籍,可以当做一本专属于IT人的小说来看。





《改变未来的九大算法》—— 美 约翰.麦考密克

44d120d6a88efe26c4070bf859055c60e12b2715

Google得出的搜索结果是如何产生的?百度为何会陷入“搜索门”,又是什么机制使然?身处在大数据时代的我们,究竟该如何应对变化莫测的世界?……没有满篇的专业术语,第一次让我们通过简单明了的语言、生动的例证了解支撑计算机王国的灵魂支柱——9大算法,包括人工智能、数据压缩,以及Google著名的PageRank等。《改变未来的九大算法》一书精彩地介绍了搜索引擎、PageRank、公开密钥加密、纠错码、模式识别、数据压缩、数据库、数字签名等内容。在解释这些算法的同时,作者也向我们展示了充满科学原创精神的计算机世界:因为每一种算法的提出不但延伸了虚拟世界的领域,同时也是人类智慧的彰显,可以被广泛运用于众多领域。
在读完本书后,你不会成为一名更加熟练的计算机用户,但你会更珍视自己每天在所有计算设备上不停使用的思想的美。我们每天都会进行多次搜索查询,但是你想过这个令人惊叹的工具是如何奏效的吗?谷歌的精英管理层因为谷歌“以超乎寻常的技巧返回相关度极高的结果”而获奖,他们是怎么做到的?《改变未来的九大算法》将带你一探究竟。


《算法帝国》 —— Christopher Steiner

38dc04439a109b0315a2873dca27b907553e87e9今天,算法涉足的领域已经远远超出了其创造者的预期。特别是进入信息时代以后,算法的应用涵盖金融、医疗、法律、体育、娱乐、外交、文化、国家安全等诸多方面,显现出源于人类而又超乎人类的强大威力。《算法帝国》是《纽约时报》畅销书作者斯坦纳的又一力作,通过一个又一个引人入胜的故事,向读者介绍了算法掌控世界的真实情况,揭示了“机器人革命”是如何悄然在我们身边发生的。如果说《改变未来的九大算法》是为弥散程序员气质的业余技术控洗髓内修的白话算法书,《算法帝国》就是为抱负征服世界雄心的程序员易筋外修的演义励志书,一路读来心中满盈释然和暗合之悦。搞了小半辈子算法,一直到听过凯文—斯拉文(KevinSlavin)的TED演讲“算法如何塑造我们的世界”,才有意识地去感知周遭世界一行一止中算法的开合有度。本书大开大阖,从70年代华尔街的勃兴开始,以本世纪华尔街和硅谷的权力更替收尾,世界易帜,算法仍旧。书名直译为《算法如何控制我们的世界》,对于潜志算法的我们,是控制还是被控制?书尾赫然写道:“你很有可能统治世界,如果没有机器人抢在你前头的话。” 

《算法帝国》适合所有对科技史、信息革命、算法原理、数据分析感兴趣的读者阅读参考。


《终极算法:机器学习和人工智能如何重塑世界》 —— 佩德罗·多明戈斯 

9d991f8e4f0247c8e7e44bb97ca6db67b58eb943算法已在多大程度上影响我们的生活?购物网站用算法来为你推荐商品,点评网站用算法来帮你选择餐馆,GPS系统用算法来帮你选择好的路线,公司用算法来选择求职者……当机器最终学会如何学习时,将会发生什么? 不同于传统算法,现在悄然主导我们生活的是“能够学习的机器”,它们通过学习我们琐碎的数据,来执行任务;它们甚至在我们还没提出要求,就能完成我们想做的事。 什么是终极算法? 机器学习五大学派,每个学派都有自己的主算法,能帮助人们解决特定的问题。而如果整合所有这些算法的优点,就有可能找到一种“终极算法”,该算法可以获得过去、现在和未来的所有知识,这也必将创造新的人类文明。 你为什么必须了解终极算法? 不论你身处什么行业、做什么工作,了解终极算法都将带给你崭新的科学世界观,预测以后的科技发展,布局未来,占位未来!

“终极算法可以获得过去、现在和未来的所有知识,它的发明将成为人类最伟大的科学成就之一。”机器学习和人工智能究竟如何重塑我们的这个世界,或许你能够在这本书中找到答案。

用云栖社区APP,舒服~

【云栖快讯】《阿里持续集成与持续交付最佳实践》系列直播来啦!解析痛点与挑战、研究案例,摆脱手工作坊式研发,赶紧报名!   详情请点击
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wangchao701123/article/details/72520504

智能推荐

5个超厉害的资源搜索网站,每一款都可以让你的资源满满!_最全资源搜索引擎-程序员宅基地

文章浏览阅读1.6w次,点赞8次,收藏41次。生活中我们无时不刻不都要在网站搜索资源,但就是缺少一个趁手的资源搜索网站,如果有一个比较好的资源搜索网站可以帮助我们节省一大半时间!今天小编在这里为大家分享5款超厉害的资源搜索网站,每一款都可以让你的资源丰富精彩!网盘传奇一款最有效的网盘资源搜索网站你还在为找网站里面的资源而烦恼找不到什么合适的工具而烦恼吗?这款网站传奇网站汇聚了4853w个资源,并且它每一天都会持续更新资源;..._最全资源搜索引擎

Book类的设计(Java)_6-1 book类的设计java-程序员宅基地

文章浏览阅读4.5k次,点赞5次,收藏18次。阅读测试程序,设计一个Book类。函数接口定义:class Book{}该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是 书籍名称、 价格、 作者、 出版年份 。裁判测试程序样例:import java.util.*;public class Main { public static void main(String[] args) { List <Book>_6-1 book类的设计java

基于微信小程序的校园导航小程序设计与实现_校园导航微信小程序系统的设计与实现-程序员宅基地

文章浏览阅读613次,点赞28次,收藏27次。相比于以前的传统手工管理方式,智能化的管理方式可以大幅降低学校的运营人员成本,实现了校园导航的标准化、制度化、程序化的管理,有效地防止了校园导航的随意管理,提高了信息的处理速度和精确度,能够及时、准确地查询和修正建筑速看等信息。课题主要采用微信小程序、SpringBoot架构技术,前端以小程序页面呈现给学生,结合后台java语言使页面更加完善,后台使用MySQL数据库进行数据存储。微信小程序主要包括学生信息、校园简介、建筑速看、系统信息等功能,从而实现智能化的管理方式,提高工作效率。

有状态和无状态登录

传统上用户登陆状态会以 Session 的形式保存在服务器上,而 Session ID 则保存在前端的 Cookie 中;而使用 JWT 以后,用户的认证信息将会以 Token 的形式保存在前端,服务器不需要保存任何的用户状态,这也就是为什么 JWT 被称为无状态登陆的原因,无状态登陆最大的优势就是完美支持分布式部署,可以使用一个 Token 发送给不同的服务器,而所有的服务器都会返回同样的结果。有状态和无状态最大的区别就是服务端会不会保存客户端的信息。

九大角度全方位对比Android、iOS开发_ios 开发角度-程序员宅基地

文章浏览阅读784次。发表于10小时前| 2674次阅读| 来源TechCrunch| 19 条评论| 作者Jon EvansiOSAndroid应用开发产品编程语言JavaObjective-C摘要:即便Android市场份额已经超过80%,对于开发者来说,使用哪一个平台做开发仍然很难选择。本文从开发环境、配置、UX设计、语言、API、网络、分享、碎片化、发布等九个方面把Android和iOS_ios 开发角度

搜索引擎的发展历史

搜索引擎的发展历史可以追溯到20世纪90年代初,随着互联网的快速发展和信息量的急剧增加,人们开始感受到了获取和管理信息的挑战。这些阶段展示了搜索引擎在技术和商业模式上的不断演进,以满足用户对信息获取的不断增长的需求。

随便推点

控制对象的特性_控制对象特性-程序员宅基地

文章浏览阅读990次。对象特性是指控制对象的输出参数和输入参数之间的相互作用规律。放大系数K描述控制对象特性的静态特性参数。它的意义是:输出量的变化量和输入量的变化量之比。时间常数T当输入量发生变化后,所引起输出量变化的快慢。(动态参数) ..._控制对象特性

FRP搭建内网穿透(亲测有效)_locyanfrp-程序员宅基地

文章浏览阅读5.7w次,点赞50次,收藏276次。FRP搭建内网穿透1.概述:frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。2.简单的图解:3.准备工作:1.一个域名(www.test.xyz)2.一台有公网IP的服务器(阿里云、腾讯云等都行)3.一台内网主机4.下载frp,选择适合的版本下载解压如下:我这里服务器端和客户端都放在了/usr/local/frp/目录下4.执行命令# 服务器端给执_locyanfrp

UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)_uva12534-程序员宅基地

文章浏览阅读687次。题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是_uva12534

免费SSL证书_csdn alphassl免费申请-程序员宅基地

文章浏览阅读504次。1、Let's Encrypt 90天,支持泛域名2、Buypass:https://www.buypass.com/ssl/resources/go-ssl-technical-specification6个月,单域名3、AlwaysOnSLL:https://alwaysonssl.com/ 1年,单域名 可参考蜗牛(wn789)4、TrustAsia5、Alpha..._csdn alphassl免费申请

测试算法的性能(以选择排序为例)_算法性能测试-程序员宅基地

文章浏览阅读1.6k次。测试算法的性能 很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PE_算法性能测试

Lane Detection_lanedetectionlite-程序员宅基地

文章浏览阅读1.2k次。fromhttps://towardsdatascience.com/finding-lane-lines-simple-pipeline-for-lane-detection-d02b62e7572bIdentifying lanes of the road is very common task that human driver performs. This is important ..._lanedetectionlite

推荐文章

热门文章

相关标签