作者的新书《图解数据结构与算法》上市了,全彩印刷!

1,548 阅读3分钟

写作初衷

《图解数据结构与算法》的写作初衷是为大家提供一种形象且易于理解的方式来学习常见的数据结构和算法,本书采用一步一图的方式来呈现数据结构中常见概念以及算法的步骤,降低了理解难度和阅读压力。

对于不是专门写算法的程序员来说,其实我们更需要的是一种形象且更加容易理解的方式来帮助我们学习数据结构和算法。对于常见的数据结构和算法的核心思想,我们更希望从感性的角度来理解把握,从而能够在不同的场景中知道要使用怎样的数据结构和算法。作者希望不管是刚入行的程序员还是经验丰富的工程师,本书都能让你轻松领悟常见的数据结构和算法的精髓及思想。

数据结构、算法是什么?

根据维基百科的定义,数据结构是一种数据组织、管理和存储的格式,它能提供有效的数据访问和修改操作。更准确地说,数据结构就是数据的集合,描述了各数据之间的关系,并提供了对这些数据的各种操作。

而算法是一组清晰定义的指令集合,用于解决某类问题或执行某种运算任务。算法应该在有限的空间和时间内进行表达,其运行从初始状态和初始输入开始,经过一系列有限而清晰定义的指令操作后,最终产生输出并终止于某个最终状态。

封装产生黑盒

Linux内核之父林纳斯·托瓦斯( Linus Torvalds)曾说过:“我认为一个优秀的程序员和一个不合格的程序员之间的区别在于,他是否将数据结构看得比代码更重要。不合格的程序员总是在关注代码,而优秀的程序员则会更看重数据结构。”Pascal之父及图灵奖获得者尼古拉斯·沃斯(Niklaus Wirth)也曾提出了一个著名的公式:“算法+数据结构=程序”。

随着面向对象思想的兴起,面向对象的编程语言将众多常用的数据结构和算法封装成了各种对象,比如不同种类的列表、集合、队列、树等等。那么它们到底是如何实现的呢?实现的原理是什么?对于编程语言,封装常用的数据结构和算法固然有很多好处,比如降低了使用成本,也大大减少了编码出错的概率。但封装同样会导致黑盒的产生,造成很多人并不知道所用对象的具体实现原理,从而导致胡乱使用。

本书特点

本书不与任何具体的编程语言绑定,而是注重用图解的方式来描述数据结构和算法的思想,所以不管你是前端还是后端程序员,不管你使用的编程语言是Javascript、Java、C++还是Python,都能够轻松阅读本书。

本书以读者能够轻松地从感性的角度来理解并掌握常用的数据结构和算法为目标,摒弃繁杂的学术式陈述,以通俗易懂的方式进行讲解,跟着执行示意图便能理解核心思想。

本书所讲解的数据结构和算法都是我们工程中最常见的那些,所以本书能够帮助我们在实际项目开发中理解相关的实现原理。

购买链接

实际效果图

封面

目录

红黑树

图

深度优先

斐波那契堆

B树

计数排序