文章吧-经典好文章在线阅读:算法(第4版)读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

算法(第4版)读后感10篇

2022-05-13 16:30:23 来源:文章吧 阅读:载入中…

算法(第4版)读后感10篇

  《算法(第4版)》是一本由塞奇威克 (Robert Sedgewick) / 韦恩 (Ke著作,人民邮电出版社出版的平装图书,本书定价:99.00元,页数:636,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助。

  《算法(第4版)》读后感(一):很好读的算法书,但个别地方似乎没讲清楚,阐述一下我的理解

  这本书有很多图,英文电子版还是彩图,读起来确实轻松愉快,另外还提供了质量很高的完整java代码,对java程序员更是加分项,在帮助理解的同时还示范了如何写高质量的代码。

  完整读下来印象中有个别地方没讲清楚或者说不好理解,以下阐述一下我的理解:

  1.KMP

  DFA构造是难点,核心就是重启状态,书里解释了当前状态和重启状态的关系,给出了重启状态的公式:

  x = dfa[pattern[j][x];

  但没有解释这个公式是怎么得来的。其实对初学者来说需要稍微解释一下,这里是一个递推的思路,

  j=0时没有重启状态,从j=1是开始,显然无论pattern是什么,这时的重启状态x都应该是0,有这个初值递推就可以开始了。如果前一个的重启状态是x,那么下一个重启状态是什么呢?下一个重启状态不就是前一个重启状态在当前字符输入后的迁移状态嘛,dfa表就是用来查这个的啊,用当前的输入字符查dfa表,就是dfa[pattern[j][x];

  其他部分讲解都很清楚就不赘述了。

  2.霍夫曼编码

  霍夫曼编码算法精巧,实现过程也很清晰,但难的是怎么知道它是最优的,书里给了一个最优性证明,不知道别人什么感觉,我的感觉是证得不明不白,很难理解,特意找了英文电子书看,发现不是翻译的问题。自己查了一些资料才算弄明白,要想理解霍夫曼最优性,需要两个关键idea:

  idea1.所有叶子节点的频率*编码长度(深度)之和等于编码后比特字符串的长度,这个是显然的,书里也说了。

  idea2.所有节点(包括内部节点和叶子节点,根节点除外)的频率之和等于编码后比特字符串的长度(内部节点的频率等于其子节点频率之和),这其实是从另外一个角度看,编码时每个字符是途经多个内部节点直到叶子节点。霍夫曼编码过程其实用到内部节点频率的计算,但书中在说明最优性时没有用它来理解及证明。

  根据这两点,特别是idea2就可以理解为什么霍夫曼编码时最优的。按照霍夫曼编码的方法很容易看到,编码树所有(包括内部节点和叶子节点,根节点除外)频率高的节点深度总是小于等于频率低的,假设存在更优的编码树,那么通过节点互换(如果是内部节点用子树),总能得到比之更优的:例如这个最优的编码树总长度为w,取其中任意两个节点node1, node2,频率分别为f1,f2,深度分别是h1,h2, 根据idea2,节点互换后的总长度(节点1移到节点2,节点2移到节点1)等于w+(h2-h1)f1+(h1-h2)f2=w+(h2-h1)(f1-f2),

  如果这个两个节点不满足霍夫曼编码要求,即f1>f2,且h1>h2,互换后总长度减少,说明互换后编码更优。

  另外,如果是h1=h2,即节点平行互换,那么w不变,这意味着霍夫曼编码并不是唯一的

  虽然对于编程应用来说详尽的证明不是很重要,但从逻辑上理解其思路还是很重要的。

  总的来说本书很不错,翻译的也可以,强烈推荐!

  《算法(第4版)》读后感(二):经典之能让本学渣看懂,学到东西,不打瞌睡的书便是好书

  个人觉得是我见过的最简单易懂的算法入门书籍。

  以前搜刮过几本算法竞赛书,但是难度终归太大【好吧,其实是自己太懒了】。

  略翻过教材,大多数水校的教材,大家懂的。好一点的也是那本国内的经典,不是说它写的不好,只是没有这一本好。

  本书Java实现,配有大量的图解,没有一句难懂的话,而且全都是模块化实现。

  讲的都是实用算法,没有那些高大上听着名字就让人感到很害怕的东西,个人觉得比CLRS实用性要强,更加适合入门的学习。

  大一,推荐这本书入门

  【有C语言基础即可,自己去搜索下如何用Java写出Hello World就没有问题】

  大二,推荐这本书从头到尾好好读一遍,做下上千道的课后习题

  【后面的有点小难度,但是难度不大值得一做,听起来很多的样子,用心去做,相信很快就可以做完的】。

  大三,推荐这本书,重新温习已知算法,为找工作,考研做准备。

  【可以试着自己在纸上全部实现一遍】

  大四,依旧推荐这本书,没事重温经典,当手册来查也不错。

  edgwick 红黑树的发现者,Donald E.Knuth 的得意门生,对各种算法都有比较深入的研究,他的书,我想不会太差。

  也许对于数据结构的学习涉及的内容比较少,没有动态规划,图论也只是讲了很基础的东西,字符串中KMP弄的过于复杂(对比于acm)。但是瑕不掩瑜,对于绝大部分内容真的讲的超级清楚,完美的图解,就像单步调试一样,也许是一本不需要智商就能看懂的算法书(习题应该略有难度,还没有做,打算上Princeton的公开课时同步跟进)。至少这是一本让我这个算法渣渣看了爱不释手,怦然心动的书。

  完美学习资源:

  Coursera公开课:https://www.coursera.org/course/algs4partI

  (听说已经开课两期了,最近即将开课的时间是2014/09/05号那期,希望有兴趣的同学一起来学习)。

  MOOC平台(笔记、讨论等):

  不得不吐槽,他的lecture比他的书好,他本人讲的课更是一绝。

  互补课程:

  快毕业了才接触到豆瓣和MOOC,看到很多经典的书籍都是推荐大学一二年级的学生看,每每想到自己却连书皮都没有摸过,就深感惭愧。

  我们都老的太快,却聪明得太迟。

  《算法(第4版)》读后感(三):强烈推荐 少年们入门的第一本算法书

  先说观点,本书极好!

  虽然一些IO方面有用到自身的API库,但完全不妨碍算法讲解。虽然是Java,但既然只要C/C++基础,那么相信毫无困难,更何况前面还有Java的一些入门讲解。对比之前看过的数据结构与算法的书,要么翻译不到位,要么陷于模版范性过于复杂,要么算法不够精简。

  而这本书的翻译相当好,毫无膈应感。(国内其他渣翻译实在应该好好学习)。代码实现和规范都相当优雅和简约清晰,称得上是我看过讲得最清楚,实现最清晰的算法书。特色应该就是里面的各式插图,非常直观。更配合上Coursera上的Algorithms课程,如有神助。

  最后,如果你想通过一本书就入门,那么我推荐它。

  《算法(第4版)》读后感(四):非常好的算法入门书

  还没看完就迫不及待来评论一下。这本书写的是在是棒极了。之前看过第一版的和第三版的,和这版最大的区别是之前都是用C语言实现,这版是用的Java,所以也叫了Algorithms而不是Algorithms in C。刚看的时候不得不说很失望,因为本人不是很喜欢Java,但看了第二部分,竟然非常感谢这版的代码是用Java写的,虽然我仍然没有对Java的喜欢之情,但不得不说代码都很简洁,美观。在这里当然要提一下人民邮电出版社,这本书本身的质量非常有保证,清晰的彩印,厚实的纸张。内容都是很基础的入门,但是相比其他的书籍阐述的已经算是非常好了。现在在图书馆看,还没入手,等看完了一定买一本收藏。

评价:

[匿名评论]登录注册

评论加载中……