本文主要是介绍常年霸榜 Amazon 数据结构与算法领域 TOP3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天的主角是以下三本书中的第一本和第三本:
第一本是《程序员面试金典》,第二本是《算法导论》,第三本是《Python数据结构与算法分析》,中文版都已经由国内出版社引进出版。其中这第一本和第三本你肯定有些意外吧?
今天我们就来跟大家简单分享下第一本和第三本书,它们好在哪里,为什么如此受欢迎。
1. 程序员面试金典(第6版)
这本书凭什么常年霸榜各类图书第一名?
你看啊,其实不止是我们在文章标题里提的「数据结构与算法」第一书,还是「求职面试指南」第一书,还是「计算机编程语言」第一书。而且,人家第一的地位那是相当稳固,从前几个版本开始就一直如此。怎么说呢,大概这就是实力上的「异常优秀」了。
首先,这本书的作者 Gayle Laakmann McDowell 曾经担任多个互联网巨头公司的面试官,她目前在全球超级受欢迎,她的个人网站因为解答面试相关问题而备受关注 http://careercup.com/。
但是注意了,作者虽然是面试官,但是并不是 HR,而是软件工程师。正因如此,她深知要在面试现场迅速想出精妙算法并在白板上写下完美代码的感受。而这种感同身受,还源于她与无数优秀的工程师有过同样的经历:参加过谷歌、微软、苹果、亚马逊以及其他诸多公司的面试,而且强势拿到了 Offer。
作者在顶尖公司积累的第一手面试经验和随后在辅导求职者面试过程中提炼而成的精华成就了这本书,可以说,它是作者真刀真枪面试过几百位求职者之后的结晶。书中囊括了 189 道世界上最好的程序员面试题,它们都是从数以千计的好问题中挑选出来的,这些面试题本身就出自知名互联网公司。
哎,你可能有点奇怪,我们一直在强调「面试」啊.......是啊,接下来就来突出一下「算法」。这本书重点关注算法、编程和设计问题。为什么?尽管面试中也会有行为面试题,但是答案会随个人的经历而千变万化。同样,尽管许多公司也会考问细节(例如,“什么是虚函数”),但通过演练这些问题而取得的经验非常有限,更多的是涉及非常具体的知识点。本书虽然只会涉及其中一些问题,但会让大家真正了解它们及其变种“长”什么样。对于那些可以拓展技术技能的问题,作者还会给出更详细的解释。
你看啊,书中第 6 章、第 7 章、第 9 章、第 10 章和第 11 章的大部分内容均为数据结构与算法。另外在前面的软技能讲解中也多处强调算法与数据结构思维的重要性。我们来看一下第 9~ 11 章的目录,你立马就会明白这本书的设计了。
其实前面软技能的讲解也非常惊艳,是一本拿到手里一看目录就爱不释手的好书。当然,最关键的是,它既是面试宝典,也是巩固算法和数据结构的基础知识宝典。
需要的朋友们,扫码购买读起来
2. Python数据结构与算法分析(第2版)
算法是程序员的基础必修课,此处自然不必多语为何学习算法了。我们先来简单看下为何使用 Python 学习算法。
Python 是一门非常适合于讲解算法的语言,语法干净简洁,用户环境直观,基本的数据类型十分强大和易用。其交互性在不需要额外编写驱动函数的情况下为测试数据结构单元提供了直观环境。而且,Python 为算法提供了教科书式的表示法,基本上不需要再用伪代码。这一特性有助于通过数据结构与算法来描述众多与之有关、相当有趣的现代问题。
那么,我们为何要用这本书来学习算法呢?
这本书既会介绍抽象数据类型及数据结构,也会介绍如何编写算法和解决问题。大家会学习一系列的数据结构,并且解决各种经典问题。随着学习的深入,会反复应用在各章中掌握的工具与技术。
具体而言,这本书有以下特色:
通过简单易读的文字而不引入太多编程语法,重点关注如何解决问题,从而向大家介绍基本的数据结构与算法;
较早介绍基于大 O 记法的算法分析,并且通篇运用;
使用 Python 讲解,让初学者更方便使用和掌握数据结构与算法。
大家将首先学习线性数据结构,包括栈、队列、双端队列以及列表,然后用Python 列表以及链表实现这些数据结构。接下来大家会学习与树有关的非线性数据结构,了解连接节点和引用结构(链表)等一系列技术。最后通过运用链式结构、链表以及 Python 字典的实现,学习图的相关知识。对于每一种结构,本书都尽力在使用 Python 提供的內建数据类型的同时展现众多的实现技巧。这种讲法在向各位揭示各种主要实现方法的同时,也强调 Python 的易用性。
这本书的学习路线图如何?
第 1 章做一些背景知识的准备,回顾计算机科学、问题解决、面向对象编程以及 Python。基础扎实的可以跳过第 1 章,直接学习第 2 章。
第 2 章介绍算法分析的内在思想,重点讲解大 O 记法,还将分析本书一直使用的重要 Python 数据结构。这可以帮助大家理解如何权衡各种抽象数据类型的不同实现。第 2 章也包含了在运行时使用的 Python 原生类型的实验测量例子。
第 3~7 章全面介绍在经典计算机科学问题中出现的数据结构与算法。尽管在阅读顺序上并无严格要求,但是许多话题之间都存在一定的依赖关系,所以应该按照本书的顺序学习。比如,第 3 章介绍栈,第 4 章利用栈解释递归,第 5 章利用递归实现二分搜索。
第 8 章是选学内容,包含彼此独立的几节。每一节都与之前的某一章有关。正如前面的组织结构图所示,你既可以在学习完第 7 章以后再一起学习第 8 章中的各节内容,也可以把它们与对应的那一章放在一起学习。例如,希望更早介绍数组的教师,可以在讲完第 3 章以后直接跳到 8.2 节。
喜欢用 Python 入门数据结构与算法
推荐选择这本书
当然了,图灵的算法图书很多,如果你读完文章,依然觉得这两本书不对你的味儿,那么点击「阅读原文」,算法书单里有多种算法图书,供你精挑细选。
推 荐 阅 读
最好的算法书
终于找到了一篇文章!通俗地讲解面向对象的工作原理
豆瓣 9.3 分,日漫风格的机器学习数学书
图 灵 社 群
求「在看」
☟ 「阅读原文」图灵算法书单
这篇关于常年霸榜 Amazon 数据结构与算法领域 TOP3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!