一些经典的数据结构和算法图书,偏重理论,读者学起来可能感觉比较枯燥。一些趣谈类的数据结构和算法图书,虽然容易读懂,但往往内容不够全面。另外,很多数据结构和算法图书缺少真实的开发场景,读者很难将理论和实践相结合。
一些经典的数据结构和算法图书,偏重理论,读者学起来可能感觉比较枯燥。一些趣谈类的数据结构和算法图书,虽然容易读懂,但往往内容不够全面。另外,很多数据结构和算法图书缺少真实的开发场景,读者很难将理论和实践相结合。
刚好有这样一本书刚刚出版,解决了上述问题。
本书全面、系统地讲解了常用、常考的数据结构和算法,并结合 300多幅图和上百段代码,让内容变得更加通俗易懂。同时,对于每个知识点,本书结合真实的应用场景进行讲解,采用一问一答的讲解模式,让读者不仅可以掌握理论知识,还可以掌握如何将数据结构和算法应用到实际的开发工作中。
前Google工程师算法面试和实战经验总结
算法学习、刷题、面试一站式服务,十万+读者验证过的、为求职面试者、工程师量身打造。
本书分为 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 为每一章节的思考题的解答
对算法和数据结构的学习,是读者对逻辑思维能力的锻炼。对于程序员,最为重要的能力是解决问题的能力。学习算法、掌握数据结构的应用,可以让读者具备科学的思维方式。通过对算法和数据结构的学习,读者不但可以提升自己在面试中的竞争力,而且在工作中应对边缘、性能问题时会更加从容和自信。本书从常用的数据结构与算法入手,采用和实际工程问题结合的讲解形式,可以带领读者系统化地学习、解读这些经典的计算机科学知识。
——张云浩(Hercy) 力扣(LeetCode)CEO
算法之难,在于将精巧的逻辑,通过合适的数据结构,用编程语言展开。在某种程度上,数据结构和算法可以说是计算机应用领域的底层逻辑,而本书正是我们学习这一底层逻辑的必读图书。让我们通过本书的学习一起感受算法和数据结构之美。
——茹炳晟 腾讯T4级专家
我是本书作者的专栏的订阅者。本书的特点是对算法的多层次讲解,从算法基础知识的讲解到落地实践。如果你是算法知识的初学者,那么可以用它来入门;如果你是一个求职者,那么可以用它来准备面试。
——刘超 《趣谈网络协议》《趣谈Linux操作系统》作者
祝您阅读愉快!