文章吧-经典好文章在线阅读:Algorithms的读后感大全

当前的位置:文章吧 > 经典文章 > 经典美文 > 经典精选 >

Algorithms的读后感大全

2020-08-24 23:47:02 来源:文章吧 阅读:载入中…

Algorithms的读后感大全

  《Algorithms》是一本由Robert Sedgewick / Kevin Wayne著作,Addison-Wesley Professional出版的Hardcover图书,本书定价:USD 89.99,页数:976,特精心网络整理的一些读者读后感希望大家能有帮助

  《Algorithms》精选点评

  ●上高级算法找的参考书目,目前的重点不是实现或者记住什么,而是了解为什么,分析算法的复杂度和正确性,算法的本质在做什么。

  ●基于Java的算法;红色theme很醒目;各种图都很精致;很想学习其源文件设计使用。但跟需求距离,暂时不能精读。值得收藏备用。

  ●细致入微,always be coding

  ●Coursera好课,好书,好配套网站.

  ●适合自学或者学的不好的(上过的数据结构的课就像文科一样建议的学习方式(书中的代码错误挺多的,没有及时更新,书的网站更新很快):Coursera (https://www.coursera.org/learn/algorithms-part1)+booksite (https://algs4.cs.princeton.edu/home/)+github (https://github.com/kevin-wayne/algs4) PS: 到有位朋友说Red-black Tree, 因为作者Robert Sedgewick是提出者之一。

  ●Nice book about the introduction of algorithm,

  ●与算法导论相比偏向实际应用. 英文版开始有点抽象.坚持看下来就明白开篇提到的点. 简化/跳过了很多晦涩的推导.. 感觉比较适合入门 排版 图片 代码质量很高. 不过typos越靠后越多.

  ●对程序员友好的算法书,推荐给所有计算机相关专业同学!!!与其他算法书相比最大的特点是有代码有真相

  ●part I finished

  ●[藏书阁打卡] 在 coursera 上学习这个老师的算法课时知道的这本书,当时就被书中详细好看的算法图解吸引住了,直到去年年底才开始看。虽说书中很多算法学习过,但读完这本书还是有很多收获。对于以前没学明的算法,比如红黑树、图算法、Tries树等,跟着作者精绘制的图示和逐步的讲解,基本理解了。作者在每个算法最后都会讲一些在工业实践会面临到的问题以及解决方法,挺有用的。对于每个算法发展历史的讲解,也挺有意思

  《Algorithms》读后感(一):复习算法,学java

  这本书写的很详细,图示,例子标注的都很清晰可以节省阅读时间,专门读重要地方。现在看的是原版,不知国内有没有翻译版本。如果是有点其他语言基础的人哪来学java很不错的。不过这本书是个大部头,不准备通读,挑重点看看即可。

  《Algorithms》读后感(二):挺重要的书,programmer现在不读早晚都要读

  经典没得说的...算法都是java的实现,但是不妨碍,接口都可类推也好理解..面试首先几个经典算法会考,这些算法看在网上高赞答案如来看书,目录翻一翻就好,书也不厚,不像算法导论那么厚;这本有习题但我没做

  我一开始client mode和comparable两个词看不懂..effective C++的时候倒是解释清楚了第一个词

  最后一章string里的DFA,regular expression的实 也是编译原理词法分析的内容

  ort的几个经典算法,复杂度分析,还有每种算法的trace图,让人比较好懂,算法复杂度得记住或者简单的推理出复杂度,,面试刷leetcode也可能会用到,

  graph的生成树,最小路径prim,dja啥的算法...

  查找那章里面的二叉树等就不讲了,哈希查找,这里的红黑数是由2-3树推出来的,这样讲比较好理解吧

  《Algorithms》读后感(三):值得看

  挺好,这本书很适合刚刚入门或者离开校园已久需要复习一下算法基础的人。我就算是后者。

  本书前半部分都是必须得会的,即使以前知道复习一下也很好。作者发明的红黑树所以那里讲的很细致清楚。

  Merge Sort我一直的解法就有他例子里面的经典performance bug,就是不应该每次都在recursive部分给local variable建新的instances而应该一直从上一层caller里面代入进来,看过后以后不会犯这一类的问题,感觉对很多recursive的解题方案都有用,我个人感觉受益匪浅。

  说起实用性,这本书比很多同类的书好太多了。省去了很多数学推导,非常适合需要准备面试的人,需要快速回顾一下基本的算法及其实现。说起来,我个人觉得如果看书的目的是针对面试的话,这本算法书,加上《Cracking the Coding Interview》和《Elements of Programming Interviews》基本就够了。顶多再去网上(比如LeetCode)刷刷题。

  虽然后面的几节面试的话可能也用不太上,因为估计Google也不太可能会让你在白板上写Non-Deterministic Finite Automata (NFA),但是总之知道总比不知道好,什么KMP,什么Huffman Coding,都包括了。

  有一些基础的东西Linear Programming之类的复习一下之后感觉自己棒棒哒!想起了当年读研究生时学了一个学期Linear Programming的那段日子。

  附加一句,估计大多数人都知道作者有24节公开课在网上,就是围绕这个书讲的,强烈建议找来看看。

  《Algorithms》读后感(四):大好,我是译者

  中文译稿我刚刚交上去不久。至于这本英文版,我绝对力荐。这是一本非常适合于自学以及作为教材的算法书。和它相比,清华的什么算法教材简直就是给原始人看的。它有什么特点呢?

  1、基础而全面:前两天看到Quora上的一个问题:你觉得最天才的算法有哪些(http://www.quora.com/What-are-some-of-the-most-ingenious-algorithms-in-computer-science)?大家仁者见仁智者见智说了很多。但如果你真的想弄明白他们说的这许多算法的过人之处,这本书会给你答案。

  2、图示清晰易懂:随便翻开这本书的一页,你会看到什么?图,图,还是图。这本书之所以厚,示意图多是一个主要原因。看完全书,纸上全是字的页码非常的少。和国内教材的枯燥说教相比,这本书的图示可以让你从一个全新的角度理解以前你可能已经学习过的许多算法。

  3、代码量少:Java成为新一代的教学语言是有原因的。Java的面向对象以及垃圾收集等特性使得读者和学生可以最大限度的将注意力集中到算法本身上去。这本书中的所有代码都不超过一页,只有很少的几处会有连续两、三页的代码,但每一页也都自成体系。这一点我非常欣赏,因为翻页会中断读者的思路。

  4、数学要求低:看过《算法导论》么?看过《计算理论》么?里面的证明是不是很让人抓狂?这种事情在这本书里不存在。这本书是从一个“实用”的角度来看算法。什么是证明算法有用好用实用的最好办法?除了理论上的保证之外,实现的简洁、运行时间的数字才是王道。这本书里用的最多的就是数学归纳法,因为很多代码都是递归的。很少的地方用到了概率论。只有最后一章讲了一个比较深奥的Cook-Levin定理。不过说实在的我觉得作者并没有讲清楚,读者记住结论、领会精神也就好了。

  5、API设计:书中所有的算法都有一份自己的API。作者在书中实践了“契约式”编程,并向读者展示了这种方式的妙处。关于API设计,作者也总结了一些原则,并用Java的标准库中的一些类做为例子进行了分析。这些分析无论是对刚刚入行的新手还是对老程序员都是非常有价值的。

  6、科学方法:这一点才是这本书的精髓。为什么这么说?因为中国学生缺少的正是这些。不要觉得第一章有250页,而其他讲解具体算法的任何一个章节都没有第一章长,就觉得第一章是在浪费版面。作者在第一章之中为全书打下了基调,而科学的方法就是其中最重要的部分。所有算法的讲解方式,都遵循了“猜想-实验”的循环。这是人类探索自然的方式,也是科学研究的方式,也是我们所缺少的“科学精神”。

  不足之处:

  1、大部头,太厚了。英文版有900+页,中文版肯定也不会薄,让读者第一眼就有点泄气。

  2、有时候有点罗嗦,但这一点在中文版中会得到改善。

  总之,这是一本Amazon上的五星书,价值毋庸置疑。Amazon上的另一份书评(Kevin P. Murphy写的)也很好的总结了这本书的特点。如果你想学习算法而又不知道从何开始,或是已经有一定基础但又不愿意纠结于数学细节,我强烈的向你推荐这本书。

  《Algorithms》读后感(五):花哨的算法書

  按理說, Sedgewick 的書應該很有水平。但是看完後很失望。

  這是一本給出每個算法具體實現的書,所以相比DPV或者CLRS,其介紹的內容要少得多,Dynamic Programming, Linear Programming這兩個有力的算法工具完全沒有濊及,計算理論(P/NP之類)的話題也基本少得可憐。相比300頁的DPV,這本近千頁的書反而內容少很多很多。

  但是書中還是有亮點的。最大的亮點在於其圖示。大多算法的過程都有模擬的過程圖來介紹,對於人的理解很有助益。說實話,書中的一些圖還是我平生第一次見到。尤其是不同算法複雜度比較打出的散點圖,非常新穎。而且排版不錯(你能想像用Adobe InDesign排版這麼一本九百多頁的花哨算法書要費多大精力嗎?反正我被折服了),讚一個。

  但除了圖外,作者的篇幅似乎浪費得太多。比如第一章基本沒講啥,卻佔用了近四分之一的篇幅。而且很多地方囉唆得令人入睡。

  這書每個算法都有代碼,但質量卻不怎麼樣。而且不少有誤導性。比如書中給出了一個in-place的mergesort,按理說,in-place的mergesort寫起來很麻煩,很難做好,但書中的代碼短得令人難以相信。定睛一看,那代碼用額外的數組的,根本不能算in-place。

  又比如3-way partition quick sort,我看了半天愣是沒理解他在幹嘛。而下面基於Dutch National Flag算法的的代碼要比書中的漂亮很多,且是1-pass的:

  void Qsort(int * a, int left, int right) {

  if (right <= left) return;

  int l = left, h = right, m = left;

  int pivot = a[l + rand()%(h-l+1)];

  while(m<=h){

  int x = a[m]-pivot;

  witch((x>0)-(x<0)){

  case -1: swap(a[l++], a[m++]); break;

  case 0: m++; break;

  case 1: swap(a[m ], a[h--]); break;

  }

  }

  Qsort(a, left, l-1); Qsort(a, m, right);

  }

  再比如KMP,書中居然用起了二維數組,並且完全不突出其「自我匹配」的美感。下面的代碼就比書裡好多了。

  def prefix(t, p):

  i = [0] * len(p)

  q = 0

  for i in range(1, len(t)):

  while q > 0 and p[q] != t[i]: q = pi[q - 1]

  if p[q] == t[i]: q = q + 1

  i[i] = q

  return pi

  def kmp(t, p):

  i = prefix(p, p)

  q = 0

  for i in range(len(t)):

  while q > 0 and p[q] != t[i]: q = pi[q - 1]

  if p[q] == t[i]: q = q + 1

  if len(p) == q: return i - len(p) + 1

  return -1

  看到了沒?算prefix和跑kmp的代碼各區區七行(沒有任何Python高級功能,如果改成C/Java,多不出兩三行來。),其中三行是完全一樣的。這樣的代碼才能體現Knuth算法設計的美感。

  許多代碼過煩瑣,不易學生讀,更難讓需面試的小朋友們記。

  總之,這書我只建議在別的算法書看不懂時瞄瞄它的圖,別的就沒什麼的了。

评价:

[匿名评论]登录注册

评论加载中……