《大话数据结构》这本书真的适合入门吗?

193 阅读3分钟

《大话数据结构》这本书的前 4 章适合入门,其余不太适合入门(更加适合劝退),如果你只想停留在算法初级阶段,这本书很适合你

下面是我自己的几点看法,并且给几点看这本书的建议:

1. 前四章:线性结构

真的非常适合入门,讲的很清楚

2. 第五章:字符串

讲的 KMP 算法,也算讲的不错,但是作者竟然把 KMP 这么难的知识点放在这么靠前,这是要劝退读者的意思,我估计大部分都会因为看到这个 KMP 算法,而不打算将这本书看下去了

3. 第六章:树

基本的概念是讲清楚了,但这远远不够的,书中讲树的遍历的时候,直接将递归的代码贴出来,试问,有哪几个刚入门的人可以看懂理解的

4. 第七章:图

就更不要说了,简直是天书,说实话,很多对于入门的选手来说,都是看不懂的,最短路径、最小生成树这些经典算法,都很难用文字和静态的图片描述清楚

5. 第八章:查找

这里有几个可取之处:

  1. 讲二分查找的时候,讲了三种计算 mid 的方式,分别是对半计算、插值查找、斐波那契查找
  2. 索引查找的时候也概述了稠密索引、分块索引以及倒排索引,这些都是工作中会用到的
  3. 对于哈希查找的原理讲的还算清楚

这一章不可取之处,就是对平衡二叉查找树、B 树等的讲解,简直在看天书,不否认作者的实力,只是我觉得这部分内容使用视频动态的讲解会好很多,很难用文字和静态的图片描述清楚

6. 第九章:排序

  1. 简单的冒泡、选择、插入排序讲的很清楚,从希尔排序开始,就不太适合基础薄弱的读者了
  2. 特别是堆排序(其实作者的讲解也算到位,如果我们去读的话,需要一个字一个字的去咬,需要非常大的毅力,也就是需要非常多的时间来消化,效果还不一定好)
  3. 如果你对递归没有理解透,作者讲的归并排序和快速排序,你根本看不懂,这本书通篇都没有将递归讲透,你叫我们这些刚入门如何来阅读完这本书

看这本书的几点建议:

  1. 对于前 4 章你可以去学习,而且你也会学习的很愉快,后面的话,建议选择性学习了(KMP 可以先跳过)
  2. 学完前 4 章的话,你一定一定要搞明白递归,然后可以继续往后学习
  3. 对于难点的知识,比如平衡二叉树、B 树、图论相关的算法、堆排序等内容尽量的去看高质量的视频讲解
  4. 这本书真的不太适合入门,适合看看你需要哪些知识点,因为这本书的知识点还是蛮全的