当“基本功”数据结构与算法被图形分解,要还不会就真的没办法了
前言
数据结构与算法并不只是抽象的概念,掌握好的话可以写出更高效、运行得更快的代码,这对于如今盛行的网页和移动应用开发来说尤为重要。如果你最近一-次使用算法是在大学课堂上或求职面试时,那你应该还没见识到它的真正威力。
这个主题的大多数资料都有一种通病一晦涩 难懂。满纸的数学术语,搞得除非你是数学家,不然真不知道作者在说什么。即使是一些声称“简化”过的书,看起来也好像已经认定读者都掌握了高深的数学知识。这就导致了很多人对此主题望而生畏,以为自己的智商不足以理解这些概念。但事实上,数据结构与算法都是能够从常识推导出来的。数学符号只是种特定的语言,数学里的一切都是可以用常识去解释的。本书用到的数学知识就只有加减乘除和指数,所有的概念都可以用文字来解释。我还会采用大量的图表以便读者轻松地理解。
一旦掌握了这些知识,你就能写出高效、快速、优雅的代码。你还能权衡各种写法的优劣,并能合理判断适用于给定情况的最优方案。
本书的主旨就是数据结构与算法,具体内容如下。
由于篇幅限制小编,小编只在这里给大家展示目录及部分内容,有需要完整文档的程序猿(媛)可以帮忙转发+关注,添加小编vx:yunduoa2019获取
第1章和第2章
解释数据结构和算法是什么,并探索时间复杂度这一判断算法效率的概念。此过程中还会经常提及数组、集合和二分查找。
第3章
以老奶奶都听得懂的方式去揭示大0记法的本质。因为大0记法全书都会用到,所以对这一章的理解非常重要。
第4章、第5章和第6章
进一步探索大0记法,并以实例来演示如何利用它来加快代码运行速度。这一路上,我们还会提到各种排序算法,包括冒泡排序、选择排序和插入排序。
第7章和第8章
会再探讨几种数据结构,包括散列表、栈和队列,展示它们对代码速度和可读性的影响,并学会用其解决实际问题。
第9章第10 章
会介绍递归,计算机科学中的核心概念。我们会对其进行分解,考察它在某些问题上的利用价值。第10 章会运用递归来实现一些飞快的算法,例如快速排序和快速选择,提升读者的算法开发能力。
第11章、第12章和第13章
会探索基于结点的数据结构,包括链表、二叉树和图,并展示它们在各种应用中的完美表现。
最后一章,第14章
介绍空间复杂度。当程序运行环境的内存空间不多,或处理的数据量很大时,理解空间复杂度便显得特别重要。
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注,添加小编vx:yunduoa2019
版权声明: 本文为 InfoQ 作者【周老师】的原创文章。
原文链接:【http://xie.infoq.cn/article/ee8e10e859b5ad2054784f96e】。文章转载请联系作者。
评论