有哪些值得推荐的好的算法书?

经典算法

算法设计

有哪些值得推荐的好的算法书?

这是一本关于算法设计和分析的经典教材。本书围绕算法设计进行组织,对每种算法技术用多个典型范例进行分析,把算法的理论跟实际问题结合起来,具有很大的启发性。本书侧重算法设计思路,每章都从实际问题出发,经过深入具体的分析引出相应算法的设计思想,并对算法的正确性和复杂性进行合理的分析和论证。本书覆盖面广,且含有200多道精彩的习题,最后还扩展了PSPACE问题、参数复杂性等内容。

本书的目标是将这种方法带入算法研究,作为一个设计过程,它始于各种计算应用程序中 出现的问题,构建在对算法设计技术理解的基础之上,最终得到这些问题的有效解决方案。我 们试图探讨算法思想在计算机科学中的作用,并将这些思想与一些精确制定的问题联系起来, 我们可以为它们设计算法并进行分析。换言之,导致这些问题的根本问题是什么?如何选择这 些特定的方式来描述它们?如何认识到不同情况下适用哪些设计原则?

本书的一个重要特征是问题集。本书共包含 200 多个问题,这是我们在康奈尔大学教学课程 的一部分, 几乎所有问题都在课外作业中被开发,或者在课堂测验进行了考试。我们将问题视为 本书的一个重要组成部分, 并且让它们的结构与我们对内容的整体方法保持一致。其中大部分内 容包含了一些问题的详细文字描述,这些问题出现在计算机科学应用领域或其他地方。部分问题 是我们在教材中讨论的问题的实践:建立必要的符号和形式化,设计算法,然后分析这个算法并 证明它是正确的。(我们认为这些问题的完整答案应该包括所有这些部分:带完整解释的算法、运 行时间的分析和正确性的证明。)这些问题的想法很大程度上来自我们多年来与在不同领域工作的 人们的讨论。而且,在某些情况下,这些问题也记录了一个有趣的(虽然是容易的)算法的应用, 我们没有在其他任何地方看到过这些应用。

为了帮助解决这些问题, 我们在每章中都加入了一节, 名为“带解答的练习”,讨论一个或 多个问题, 并描述了如何形式化一个解。因此,专门针对每个带解答的练习的讨论, 要比简单 编写完整、正确的解决方案所需的时间长得多(换言之, 如果将这些解决方案指定为课外作业 题,那么所用的时间明显要比获得完全学分所需的时间长)。实际上,与本书的其余部分一样, 这些节中的讨论应该看成是试图让人们了解一个更大的过程,通过这个过程可以考虑这种类型 的问题,并最终形成精确解的详细说明。

编程珠玑 第2版

有哪些值得推荐的好的算法书?

本书描述了计算机编程更具魅力的一面:在可靠的工程之外,在洞察力和创造力范围内结晶而出的编程珠玑。正如自然界中的珍珠来自于磨砺牡蛎的细沙一样,这些编程珠玑来自于磨砺程序员的实际问题。书中的程序都很有趣,传授了重要的编程技巧和基本的设计原理。

阅读本书所需的唯一背景知识就是某种高级语言的编程经验。书中偶尔会出现一些高级技术(如C++中的模板等),对此不熟悉的读者可以跳过这些内容,基本上不影响阅读。

本书每一章都独立成篇,各章之间却又有着逻辑分组。第1章至第5章构成本书的第一部分,这部分回顾了编程的基本原理:问题定义、算法、数据结构以及程序验证和测试。第二部分围绕效率这个主题展开。效率问题有时本身很重要,又永远都是进入有趣编程问题的绝佳跳板。第三部分用这些技术来解决排序、搜索和字符串等重要问题。

阅读本书的一个提示:不要读得太快。要仔细阅读,一次读一章。要尝试解答书中提出的问题——有些问题需要集中精力思考一两小时才会变得容易。然后,要努力解答每章末尾的习题:当读者写下答案时,从本书学到的大部分知识就会跃然纸上。如有可能,要先与朋友和同事讨论一下自己的思路,再去查阅本书末尾的提示和答案。每章末尾的“深入阅读”并不算是学术意义上的参考文献表,而是我推荐的一些好书,这些书是我个人藏书的重要部分。

本书是为程序员而写的。我希望书中的习题、提示、答案和深入阅读对每个人都有用。本书已用作算法、程序验证和软件工程等课程的教材。附录A中的算法分类可供实际编程人员参考,该附录同时还说明了如何在算法和数据结构课程中使用本书。

畅销算法书

数据结构与算法之美(全彩印刷)

有哪些值得推荐的好的算法书?

一些经典的数据结构和算法图书,偏重理论,读者学起来可能感觉比较枯燥。一些趣谈类 的数据结构和算法图书,虽然容易读懂,但往往内容不够全面。另外,很多数据结构和算法图 书缺少真实的开发场景,读者很难将理论和实践相结合。

为了解决上述问题,本书全面、系统地讲解了常用、常考的数据结构和算法,并结合 300 多幅图和上百段代码,让内容变得更加通俗易懂。同时,对于每个知识点,本书结合真实的应 用场景进行讲解,采用一问一答的讲解模式,让读者不仅可以掌握理论知识,还可以掌握如何 将数据结构和算法应用到实际的开发工作中。

本书分为 11 章。第 1 章介绍复杂度分析方法。第 2 章介绍数组、链表、栈、队列这些基础的线性表数据 结构。第 3 章介绍递归编程技巧、8 种经典排序、二分查找及二分查找的变体问题。第 4 章介绍哈希表、位图、 哈希算法和布隆过滤器。第 5 章介绍树相关的各种数据结构, 包括二叉树、二叉查找树、平衡二叉查找树、递 归树和 B+树。第 6 章介绍堆, 以及堆的各种应用,包括堆排序、优先级队列、求 Top K、求中位数和求百分位 数。第 7 章介绍跳表、并查集、线段树、树状数组这些比较高级的数据结构。第 8 章介绍字符串匹配算法, 包 括 BF 算法、RK 算法、BM 算法、KMP 算法、Trie 树和 AC 自动机。第 9 章介绍图及相关算法,包括深度优 先搜索、广度优先搜索、拓扑排序、Dijkstra 算法、Floyd 算法、A*算法、最小生成树算法、最大流算法和最大 二分匹配等。第 10 章介绍 4 种算法思想, 包括贪心、分治、回溯和动态规划。第 11 章介绍 4 个经典项目中的 数据结构和算法的应用,包括 Redis、搜索引擎、鉴权限流和短网址服务。另外,附录 A 为每一章节的思考题 的解答。

面试必备

计算之魂 (《数学之美》《浪潮之巅》

有哪些值得推荐的好的算法书?

作者在书中结合自己对计算机工程师的分级,详细讲解了每类题目不同层次的解决方法、 不同水平的人大约能思考到什么样的深度,深度阐述了题目背后的计算机科学精髓。通过对比 不同的解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻 理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,不断获得成功。

对于所有有志于了解或学习科技,特别是计算机科学的人来讲,本书不仅有助于了解计 算机科学,更有助于了解 IT 产业的技术特点、培养一些特殊的思维方式、掌握信息时代特 殊的做事方法,通过具体的例子,从“术”的层面获得“道”的层面的提升。

在书中,作者会讲解大约 40 道例题,它们大多是比较难的问题, 此外作者还会以思考题的形式提供大约 50 道面试题供大家参考。我可以非常肯定地讲,如果一个计算机工程师能够解决书中的大部分面试题,并且理解其中的道理,就完全可以被 Google、亚马逊、Facebook 或者微软这样的公司录用。作者会详细分析解决这些例题所用到的计算机科学的精髓, 并且告之不同水平的人大约能思考到什么样的深度,这样大家如果有兴趣的话,可以衡量一下自己的水平,并且了解自己和前面各级之间的差距。

为了便于一些爱钻研的读者朋友深入思考,作者会在每一章末尾出一些思考题和练 习题。这一方面是为了帮助大家理解计算机科学本质的问题,另一方面则是方便大家评估自己的水平,并且得到一些实战的训练。

百面机器学习 算法工程师带你去面试

有哪些值得推荐的好的算法书?

本书信息量很大,涉猎人工智能和机器学习的各个子领域。每个公司、每个业务、每个职位,不一定会用到全部的技能。所以关于阅读这本书,作者有以下几个建议。

(1)顺读法:从头至尾阅读。如果你能读懂全部内容,所有的题目都会解答,欢迎你到Hulu来申请工作吧!

(2)由简至难法: 每道题的旁边都标明了难度。一星最简单,五星最难。在本书中,还提供了一个题目的列表。一颗星的题目,主要是介绍基本概念,或者是为什么要做某一件事,比如 “什么是ROC曲线?”“为什么需要对数值类型的特征做归一化?”。如果你是机器学习的入门学习者,可以从背景知识和简单的题目出发,循序渐进。

(3)目标工作法:不是所有的公司、所有的职位都需要懂得各类算法。如果你目前的工作或者想去的工作在某个领域,它们可能会用到某几类算法。如果你对某个新的领域很感兴趣,比如循环神经网络,那你可以专攻这些章节。不过无论用哪类算法,特征工程、模型评估等基本技能都是很重要的。

(4)互联网阅读法:一本书很难把广泛的领域讲得面面俱到,尤其是题目和解答,可以举一反三有很多花样。所以,我们在很多章节后都有总结和扩展。对某个领域感兴趣的朋友们,可以以这本书为起点,深入到扩展阅读,成为这一方面的专家。

(5)老板读书法:如果你是一个技术管理者,你需要解决的问题是算法可能对你现有的技术体系有什么帮助,和怎么找到合适的人,帮你做出智能的产品。建议你可以粗略地浏览一下本书,了解机器学习的各个技术领域,找到合适的解决方案。然后,你就可以用本书作面试宝典了。

这本书出版的目的,是让更多的人练习和掌握机器学习相关的知识,帮助计算机行业人员了解算法工程师需要的实际技能,帮助软件工程师成为出色的数据科学家,帮助公司的管理者了解人工智能系统需要的人才和技能,帮助所有对人工智能和机器学习感兴趣的朋友们走在技术和时代的前沿。

书中收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景。本书从日常工作、生活中各种有趣的现象出发,不仅囊括了机器学习的基本知识,而且还包含了成为出众算法工程师的相关技能,更重要的是凝聚了笔者对人工智能领域的一颗热忱之心,旨在培养读者发现问题、解决问题、扩展问题的能力,建立对机器学习的热爱,共绘人工智能世界的宏伟蓝图。

“不积跬步,无以至千里”,本书将从特征工程、模型评估、降维等经典机器学习领域出发,构建一个算法工程师必-备的知识体系;见神经网络、强化学习、生成对抗网络等新科研进展之微,知深度学习领域胜败兴衰之着;“博观而约取,厚积而薄发”,在末一章为读者展示生活中各种yin领时代的人工智能应用。

百面深度学习 算法工程师带你去面试

有哪些值得推荐的好的算法书?

深度学习有着传统机器学习和传统计算机程序没有的优点,这个优点就是,它能够处理人们并不完全懂得的问题,而且更擅长处理含噪声或不完全的数据。不能精确定义、有噪声和数据不完全,实际生活中的场景经常是这样的。所以说,深度学习更加贴近生活。人工神经网络的模式匹配和学习能力使它能够解决许多难以或不可能通过标准计算和统计方法解决的问题。

部分读者评论如下:

1.知识点讲解得很到位,而且很多是从实际问题出发,很接地气,业务实践者深度理解知识点的利器。

2.技术面必备参考书,问题涉及面广,细节考察到位,难度把握得当,非常满意,五星好评。

3.完全超出了预想,书写得比想象的好多了,一看作者就是做了多年机器学习相关工作的“老油条”了,并且有异于市面上千篇一律的经典书籍的注重公式推导和概念阐述,这本书有些是实践应用多年才会有的思考,里面的很多问题也很有意思,第一次发现原来可以通过这个角度重新思考。总之是很棒的一本书,正在阅读中,期待有更多的收获!

全书内容大致分为两个部分,第一部分介绍经典的深度学习算法和模型,包括卷积神经网络、循环神经网络、图神经网络、生成模型、生成式对抗网络、强化学习、元学习、自动化机器学习等;第二部分介绍深度学习在一些领域的应用,包括计算机视觉、自然语言处理、推荐系统、计算广告、视频处理、计算机听觉、自动驾驶等。本书仍然采用知识点问答的形式来组织内容,每个问题都给出了难度级和相关知识点,以督促读者进行自我检查和主动思考。书中每个章节精心筛选了对应领域的不同方面、不同层次上的问题,相互搭配,展示深度学习的“百面”精彩,让不同读者都能找到合适的内容。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值