Pascal 之父 Nicklaus Wirth 曾说:“程序=数据结构+算法。”
在《算法(第4版)》中,作者也说过:“数据结构和算法的学习是计算机科学和软件工程领域的基础,它们关于处理实际问题和优化程序功能至关重要。”
数据结构与算法的重要性不言而喻,关于计算机专业的学生,更是不陌生。作为两门必学的课程,如果有同学立志做好技能,那数据结构与算法的学习是怎么都绕不开的坎。
随手查找知乎,仍是有不少人发问:“怎么体系地学习数据结构与算法?”“怎么在最短时间内搞定数据结构与算法,应付面试?”甚至有人问出:“数据结构与算法学起来很费劲很绝望,感觉脑子不开窍,刷题也只会简略等级的题,是不是不适合程序员这个职业?”这样的问题。
综合网上的各种问答来看,不管学习的意图是什么。数据结构与算法仍然是学生党以为的老大难课程。更有同学直接吐槽:“计算机专业全凭自学,教育常识掉队,一个 VC6.0 用一万年。”
虽然网上有许多教程,但依旧有许多初学者摸不到头绪。为了帮忙初学者处理入门困难问题,今天给我们引荐一本比教材更友好的《Python数据结构与算法剖析(第3版)》。这本书是经典的计算机教材,被华盛顿大学、北京大学等多家高校选用,运用当下盛行的 Python 言语,厚实的理论+丰富的事例,学习无压力。
(新书上市,限时5 折)
这本书作为用 Python 描绘数据结构与算法的开山之作,向读者透彻解说在 Python 环境下,怎么经过一系列存储机制高效地完成各类算法。
内容对初学者友好,开篇介绍了依据大 O 计法的算法剖析,并通篇运用,运用 Python 3 解说,语法干净。深入浅出,理论厚实,事例丰富。每章还配有练习题,便利稳固学习。
全书六大模块,包括数据结构与算法的方方面面。
第2版读者评价
@李銮珂:写的挺好,大二在课上学懵懵懂懂,大三下自己再看一遍感觉打通了,不过还剩下一点点尾巴没学完,明年回来补上。
@Colin:实战性十分强的一本书。笼统的数据结构和算法,结合直观形象的示意图,加上诚心十足的示例代码,一口气读下来,许多曾经想做可是没什么头绪的问题,遽然就思路明朗了起来。已经用书里的思维完成了图论中的 Dijkstra 算法处理最短途径问题、Route Inspection 算法处理邮递员问题,感觉棒棒哒。但现在知道现在的水平只是初窥计算机科学的微妙,以后要继续加油!@东川路厚道豪:B 站上面有北大陈斌教师的配套网课,配合起来学仍是十分不错的。在这里也要引荐一下北京大学陈斌教师的 B 站课程,是北京大学的课程实录。这套课程用的教材正是这本书,我们能够用图书调配视频学习,就不必忧虑自己学不会了。(课程网址:space.bilibili.com/275008758/c…](p3-juejin.byteimg.com/tos-cn-i-k3…)
本书内容设置
全书总共 8 章内容。第 1 章经过温习计算机科学、问题处理、面向对象编程以及 Python 来预备布景常识。基础厚实的同学能够概览第 1 章,快速进入第 2 章。
第 2 章介绍算法剖析的内在思维,同时着重大O记法,还将剖析本书一向运用的重要 Python 数据结构。这能够帮忙我们了解各种笼统数据类型不同完成之间的权衡。第 2 章也包括了在运行时运用的 Python 原生类型的实验测量例子。
第 3~7 章全面介绍在经典计算机科学问题中呈现的数据结构与算法。虽然在阅览次序上并无严格要求,可是许多论题之间存在必定的依靠关系,所以应该按照本书的次序学习。比如,第 3 章介绍栈,第 4 章运用栈解说递归,第 5 章运用递归完成二分查找。
第 8 章是选学内容,包括互相独立的几节。每一节都与之前的某一章有关。正如前面的安排结构图所示,既能够在学习完第 7 章以后再一起学习第 8 章中的各节内容,也能够把它们与对应的那一章放在一起学习。
第3 版内容更新
-
源代码遵循 PEP 8 Python 编程规范。
-
用 pythonds 3 包(其中包括很多算法以及数据结构完成)替代了 pythonds 包。
-
书中提供的示例和代码打包放至 GitHub 库房(psads/psadspy-src)。
-
章末的编程练习和评论问题兼并成了练习,读者能够自行决定是否需要评论或许完成。
-
依据读者反应进行了很多澄清和改正。
作译者简介
布拉德利N. 米勒(Bradley N. Miller)美国路德学院计算机科学名誉教授,曾获美国计算机协会软件体系奖,对 Python 课程开发有深入研究,由他创建的互动式教科书渠道 Runestone Interactive 与全球 600 多家教育安排有协作。
戴维L. 拉努姆(David L. Ranum)Merative 高级科学家,医学信息学博士,致力于运用自然言语处理等人工智能技能处理医疗问题,曾在美国路德学院教学计算机科学课程近三十载。
罗曼亚西诺夫斯基(Roman Yasinovskyy)美国路德学院计算机科学系主任、副教授,授课规模包括算法、Web 开发、计算机网络、数据库办理体系、操作体系、计算机体系结构以及信息安全等课程。博士结业于陶森大学运用信息技能专业。
译者吕能:StreamNative 计算技能负责人,开源项目 Apache Pulsar、Apache Heron 的核心贡献者。先后在浙江大学和美国加州大学洛杉矶分校取得计算机科学学士学位和硕士学位,关注分布式实时数据引擎体系的研发,热衷于遍及计算机技能常识。曾任 Twitter 资深工程师。
刁寿钧:腾讯优图实验室团队 11 级工程师,结业于复旦大学。现在聚集于腾讯云人工智能渠道的建造。曾帮忙安排 IMG 社区的技能沙龙活动。另译有《数据剖析实战》。
大咖引荐
本书是一本必读的 Python 攻略,透彻解说了在 Python 环境下完成各类高效算法的方法。作者凝聚多年实战经验,将数据结构、递归、查找、排序、树与图等内容生动呈现。关于所有 Python 程序员,本书是在 Python 基础上学习数据结构与算法的优异资源,值得一读。
——崔庆才,微软(我国)工程师,《Python 3网络爬虫开发实战》作者
我一向选用本书原版教材教学数据结构与算法课程,很快乐看到本书中文版第 3 版出书,让更多学生能够无障碍阅览这本优异的教材。本书选用 Python 言语,深入浅出地介绍了常用的数据结构及算法,言语运用规范,事例丰富,运用情境取材广泛,很有启发性。在多年的教育实践中,本书深受学生欢迎,信任它能帮忙更多 Python 学习者提升算法才能。
——陈斌,北京大学地球与空间科学学院教授,北京市高等学校教育名师