Pascal 之父 Nicklaus Wirth 曾说:“程序=数据结构+算法。” 在《算法(第4版)》中,作者也说过:“数据结构和算法的学习是计算机科学和软件工程领域的基础,它们对于解决实际问题和优化程序性能至关重要。” 数据结构与算法的重要性不言而喻,对于计算机专业的学生,更是不陌生。作为两门必学的课程,如果有同学立志做好技术,那数据结构与算法的学习是怎么都绕不开的坎。 随手搜索知乎,还是有不少人提问:“如何系统地学习数据结构与算法?”“如何在最短时间内搞定数据结构与算法,应付面试?”甚至有人问出:“数据结构与算法学起来很吃力很绝望,感觉脑子不开窍,刷题也只会简单等级的题,是不是不适合程序员这个行业?”这样的问题。 综合网上的各种问答来看,不管学习的目的是什么。数据结构与算法仍然是学生党认为的老大难课程。更有同学直接吐槽:“计算机专业全凭自学,教学知识落伍,一个 VC6.0 用一万年。” (新书上市,限时 5 折) 内容对初学者友好,开篇介绍了基于大 O 计法的算法分析,并通篇运用,使用 Python 3 讲解,语法干净。深入浅出,理论扎实,案例丰富。每章还配有练习题,方便巩固学习。 全书六大模块,涵盖数据结构与算法的方方面面。 第2版读者评价 @李銮珂:写的挺好,大二在课上学懵懵懂懂,大三下自己再看一遍感觉打通了,不过还剩下一点点尾巴没学完,明年回来补上。 本书内容设置 第 2 章介绍算法分析的内在思想,同时强调大 O 记法,还将分析本书一直使用的重要 Python 数据结构。这可以帮助大家理解各种抽象数据类型不同实现之间的权衡。第 2 章也包含了在运行时使用的 Python 原生类型的实验测量例子。 第 3~7 章全面介绍在经典计算机科学问题中出现的数据结构与算法。尽管在阅读顺序上并无严格要求,但是许多话题之间存在一定的依赖关系,所以应该按照本书的顺序学习。比如,第 3 章介绍栈,第 4 章利用栈解释递归,第 5 章利用递归实现二分搜索。 第 8 章是选学内容,包含彼此独立的几节。每一节都与之前的某一章有关。正如前面的组织结构图所示,既可以在学习完第 7 章以后再一起学习第 8 章中的各节内容,也可以把它们与对应的那一章放在一起学习。 第 3 版内容更新
作译者简介 布拉德利·N. 米勒(Bradley N. Miller)美国路德学院计算机科学名誉教授,曾获美国计算机协会软件系统奖,对 Python 课程开发有深入研究,由他创立的互动式教科书平台 Runestone Interactive 与全球 600 多家教育机构有合作。 戴维·L. 拉努姆(David L. Ranum)Merative 高级科学家,医学信息学博士,致力于利用自然语言处理等人工智能技术解决医疗问题,曾在美国路德学院讲授计算机科学课程近三十载。 罗曼·亚西诺夫斯基(Roman Yasinovskyy)美国路德学院计算机科学系主任、副教授,授课范围涵盖算法、Web 开发、计算机网络、数据库管理系统、操作系统、计算机体系结构以及信息安全等课程。博士毕业于陶森大学应用信息技术专业。 译者吕能:StreamNative 计算技术负责人,开源项目 Apache Pulsar、Apache Heron 的核心贡献者。先后在浙江大学和美国加州大学洛杉矶分校取得计算机科学学士学位和硕士学位,关注分布式实时数据引擎系统的研发,热衷于普及计算机技术知识。曾任 Twitter 资深工程师。 大咖推荐 本书是一本必读的 Python 指南,透彻讲解了在 Python 环境下实现各类高效算法的方法。作者凝聚多年实战经验,将数据结构、递归、搜索、排序、树与图等内容生动呈现。对于所有 Python 程序员,本书是在 Python 基础上学习数据结构与算法的优秀资源,值得一读。 ——崔庆才,微软(中国)工程师,《Python 3网络爬虫开发实战》作者 我一直采用本书原版教材讲授数据结构与算法课程,很高兴看到本书中文版第 3 版出版,让更多学生能够无障碍阅读这本优秀的教材。本书采用 Python 语言,深入浅出地介绍了常用的数据结构及算法,语言使用规范,案例丰富,应用情境取材广泛,很有启发性。在多年的教学实践中,本书深受学生欢迎,相信它能帮助更多 Python 学习者提升算法能力。 ——陈斌,北京大学地球与空间科学学院教授,北京市高等学校教学名师 小伙伴聊聊你在学习数据结构与算法时遇到过哪些难点,都是怎么克服的。我们会在精选留言中选出 3 位,获得赠书。 |
|