绿林网

《算法心得:高效算法的奥秘(原书第2版)》读后感精选

《算法心得:高效算法的奥秘(原书第2版)》读后感精选

《算法心得:高效算法的奥秘(原书第2版)》是一本由(美)Henry S. Warren, Jr.著作,机械工业出版社出版的平装图书,本书定价:89.00,页数:419,特精心收集的读后感,希望对大家能有帮助。

《算法心得:高效算法的奥秘(原书第2版)》读后感(一):拿这书内容来面试的先辈们,你考虑过关羽的感受吗?

相比的学校里acm的曲高和寡,这本书是最接工作应用地气了,到了“吹毛求疵”“令人发指”,“原子核”的地步了。

联想到三国武将值加点.我决定学习关二哥,不是专业的就把他作为春秋,平时读读索引在印象里,该用时拿出春秋来摆造型。

《算法心得:高效算法的奥秘(原书第2版)》读后感(二):计算机算法大全——算法中的亚原子粒子世界

注:此文绝非标题党,望耐心看完。

引子:思量好久,觉得有必要说说这本书《算法心得:高效算法的奥秘》(英文书名Hacker's Delight, 2nd Edition)。

本书讲解的题材,可以说市面上仅此一本(如果不算第一版的话),可以说是唯一一本讲解计算机算法的图书——而其他的算法书,则基本上全部是讲解数学算法的图书。虽然说数学算法也主要是为计算机科学服务的,但是数学算法基本上不关心计算机体系结构的细节:CPU的字长是多少?字节序是大端还是小端?带符号数和无符号数如何区分?浮点数格式采用什么标准?可以这样说:运行着数学算法的计算机,其实是图灵机——一种抽象的、在真实世界中并不存在的机器。

然而真正在实现一台计算机的过程中,计算机体系结构的细节则是极端重要的了:它们提供了数学算法中被忽略掉,但却可以用于优化的结构信息。如果说,在数学算法中,四则运算已经属于“原子”操作,那末在计算机算法中就有必要打碎这些“原子”,进入“亚原子粒子”的世界。加减法和乘除法,那肯定是要分开来讨论的,因为后者绝对要复杂得多,特别是除法。本书极其重视区分逻辑上的(数学的)数,和物理上的(真正计算机中的)数,甚至将前者用普通字体表示,后者用粗体表示。本书花了极大的篇幅,来细致地讨论数的物理表示,以及每一种基本的计算操作——计数、定位、四则运算、初等函数,等等——真正在比特这个层级上,将这些基本操作的全部细节条分缕析地展现出来,尽可能地利用任何可能的体系结构特征,来尽可能充分地利用高速存储、简化哪怕一条计算机指令,并且如数家珍地列举出每一条优化建议背后的原理。这些内容,展示了极其高超的匠艺,读来却没有丝毫的匠气。真正是亲手设计过计算机体系结构、在底层浸淫多年的经验总结,整理出来的心得和资料。

如果对计算机体系结构有兴趣,以及需要从早期阶段设计计算系统(比如嵌入式系统)的工程师,或是参与语言的低级库设计的程序员,这本书就是无价之宝。

想知道你每天使用的C语言的数学运算编译成的机器指令是怎么生成的吗?想知道库函数为什么执行起来那么高效吗?这本书里就是这些问题的答案,它荟萃着的是计算机工程的骄傲。正好比尽管所有普通人都习惯于生活在原子的世界,但亚原子粒子世界才是前者存在的根本理由。

把这本书放在书架上吧,可能它并不是你天天都要翻阅的图书,但如果你有朝一日真需要本书中的内容,别的地方可是找不到的。

《算法心得:高效算法的奥秘(原书第2版)》读后感(三):计算机算法大全——算法中的亚原子粒子世界

本书讲解的算法,和我译的那本《算法谜题》(http://book.douban.com/subject/25805152),虽然名字差不多,但是讲述的是完全不同的题材。本书讲解的题材,可以说市面上仅此一本(如果不算第一版的话),可以说是唯一一本讲解计算机算法的图书——而其他的算法书,则基本上全部是讲解数学算法的图书。虽然说数学算法也主要是为计算机科学服务的,但是数学算法基本上不关心计算机体系结构的细节:CPU的字长是多少?字节序是大端还是小端?带符号数和无符号数如何区分?浮点数格式采用什么标准?可以这样说:运行着数学算法的计算机,其实是图灵机——一种抽象的、在真实世界中并不存在的机器。

然而真正在实现一台计算机的过程中,计算机体系结构的细节则是极端重要的了:它们提供了数学算法中被忽略掉,但却可以用于优化的结构信息。如果说,在数学算法中,四则运算已经属于“原子”操作,那末在计算机算法中就有必要打碎这些“原子”,进入“亚原子粒子”的世界。加减法和乘除法,那肯定是要分开来讨论的,因为后者绝对要复杂得多,特别是除法。本书极其重视区分逻辑上的(数学的)数,和物理上的(真正计算机中的)数,甚至将前者用普通字体表示,后者用粗体表示。本书花了极大的篇幅,来细致地讨论数的物理表示,以及每一种基本的计算操作——计数、定位、四则运算、初等函数,等等——真正在比特这个层级上,将这些基本操作的全部细节条分缕析地展现出来,尽可能地利用任何可能的体系结构特征,来尽可能充分地利用高速存储、简化哪怕一条计算机指令,并且如数家珍地列举出每一条优化建议背后的原理。这些内容,展示了极其高超的匠艺,读来却没有丝毫的匠气。真正是亲手设计过计算机体系结构、在底层浸淫多年的经验总结,整理出来的心得和资料。

这么一来,本书的读者定位也就非常清楚了。想从本书的阅读收获数学算法的知识,不是不可能,但实在难度非常大。但如果对计算机体系结构有兴趣,以及需要从早期阶段设计计算系统(比如嵌入式系统)的工程师,或是参与语言的低级库设计的程序员,这本书就是无价之宝。想知道你每天使用的C语言的数学运算编译成的机器指令是怎么生成的吗?想知道库函数为什么执行起来那么高效吗?这本书里就是这些问题的答案,它荟萃着的是计算机工程的骄傲。正好比尽管所有普通人都习惯于生活在原子的世界,但亚原子粒子世界才是前者存在的根本理由。把这本书放在书架上吧,可能它并不是你天天都要翻阅的图书,但如果你有朝一日真需要本书中的内容,别的地方可是找不到的哟。

《算法心得:高效算法的奥秘(原书第2版)》读后感(四):这译者的英文水平是小学二年级,视力水平是眼瞎!

译者翻译的部分我已经不想再拿来恶心自己了,前面有豆友已经吐完槽了。我想说的是,今天我拢共就看了三页,从第二章开头(11页)看到了13页,实在就看不下去了。被低级到单细胞生物都不会犯的错误刺痛了三叉神经,确实没法儿淡定了。

第二章开头第二段,举的第一个例子就是错的!!!!

“下列公式可以将字组中值为1且最靠右的位元‘关闭’,如果不存在值为1的位元,那结果就是0(例如0101 1110 → 0101 0000)

x & (x – 1) ”

看完这只有一句话的段落之后,我就成功地被这位”爱飞翔“的译者给整蒙了。x & (x – 1) =0101 1110 & 0101 1101= 0101 1100 ,敢问0101 1100跟0101 0000是相等的吗?

刚开始我还以为自己搞错了,在网上搜这个例子,然后看到原版中是:

Use the following formula to turn off the rightmost 1-bit in a word, producing 0 if none (e.g., 0101 1000 0101 0000):

x & (x – 1)

神坑吧!!!这都能看错啦!0101 1000都能被看成0101 1110,呵呵,呵呵呵,呵呵呵呵;本着”人非圣贤孰能无过“的怜悯之心,我还是继续看了下去,但是,译者很及时地再给我泼了一头冷水。

13页,2.1.1 从右至左的可计算性测试 的第一句话:

”有一种简单的办法可以判断出某个函数是否能通过一系列加法、减法、按位和、按位与及按位取反实现出来[War] “

按位和,按位与?按位和,按位与??按位和,按位与???我他喵自我重复了好几遍!!

本着对书本文字的敬畏之心,我还是有点儿怀疑自己,难道按这么说”按位和,按位与“还不是同一个操作啦?!我又看回了原版:

”There is a simple test to determine whether or not a given function can be implemented with a sequence of add’s, subtract’s, and’s, or’s, and not’s [War].“

一切疑惑都解开了,明明是”按位与、按位或“!这货愣是写成了”按位和,按位与“,敢问您用谷歌翻译完之后自己可看过一遍?为了能多挣钱,校审人员都他喵的省了吧!!!

我对这版译本已经完全放弃了,决定啃英文原版了,我也劝大家别买了,一本完全不负责任的译本,是对原书作者的极大不尊重,没有必要为这样的人浪费自己的血汗钱!

本文由作者上传并发布(或网友转载),绿林网仅提供信息发布平台。文章仅代表作者个人观点,未经作者许可,不可转载。
点击查看全文
相关推荐
热门推荐