欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法心得:高效算法的奥秘

程序员文章站 2022-04-26 22:07:21
...
写代码总会遇到难题,时而苦于乘法操作频繁溢出,时而苦于开方算法太过笨拙,于是,程序员之间口耳相传的那些代码秘籍,这些时候就该大显身手了。有些小程序,仅两三行代码即能解决平常数十行代码方能实现的功能;还有些小程序,只用0x24924925这般神奇的数字,即能成倍提升运算速度。读者若对此感兴趣,则《算法心得:高效算法的奥秘(原书第2版)》定能令你开怀畅读。

 

作者从事计算机研发工作数十年,他将期间所得之大量技巧融于书中。本书不但讲授算法技巧,而且还会剖析背后的数学原理,令你在学会某个奇妙算法后,可举一反三,推出很多类似技巧,以运用于不同场合。

在研究这些高效而优雅的算法时,作者还会如数家珍地列出许多变体,并旁征博引地讲述可以解决同一问题的其他思路,铺陈完毕后,更会将各自优劣娓娓道来。实际应用中,经常需要权衡各算法之轻重,嵌入式开发、硬件编程、图形渲染、游戏智能等领域尤其如此,若是平素能像作者这样勤于总结、善于对比,那么在需要用到相关技巧时必能信手拈来,左右逢源。

 

从培养兴趣、锻炼思维、付诸实践三个角度观之,本书皆为精彩而思辨的智慧书。既可静心品读代码之诗意,又能细致体味数学之美感,何其乐哉!

 

作者乃业界翘楚,学识渊博而思维开阔,文中部分词句与日常用语及数学、计算机等领域一般用法不甚相同,故译文或加注释或添引号,以强调其特殊含义。

 

——摘自《《算法心得:高效算法的奥秘(原书第2版)》》译者序

=========================================================================================

算法心得:高效算法的奥秘
            
    
    博客分类: [网站分类]读书区[网站分类]程序人生 算法技巧高效

 

出版书名算法心得:高效算法的奥秘(原书第2版)

原文书名:Hacker's Delight (Second Edition)

作者:(美)Henry S. Warren, Jr. 著 

译者:爱飞翔 译 

书号:978-7-111-45356-7

定价:89.00元

 

编辑推荐

 

  • 由在IBM工作50余年的资深计算机专家撰写,Amazon全五星评价,算法领域最有影响力的著作之一
  • Google公司首席架构师、Jolt大奖得主Joshua Bloch和Emacs合作创始人、C语言畅销书作者Guy Steele倾情推荐
  • 算法的艺术和数学的智慧在本书中得到了完美体现,书中总结了大量高效、优雅和奇妙的算法,并从数学角度剖析了其背后的原理

 

读者评价

“这是第一本宣称能讲解计算机算法隐晦细节的书,而且讲得还真不错。我知道的每一条技巧书里都提到了,而且还讲了好多好多我不知道的。不论是在开发程序库或编译器,还是在极力搜求优雅算法,此书都可谓天赐良册,应放在高德纳所著《计算机程序设计艺术》那套书旁边。本书第一版刊印后的10年间,它对我在Sun和Google的工作大有裨益,而第二版所添加新内容亦令我惊羡不已。”

——Joshua Bloch

 

“初看本书书名时,我想,这是教人怎么入侵计算机系统的书吗?不太可能吧。嗯,那就肯定是一本编程小技巧的集锦。看了之后发现,没错,这就是一本编程秘籍,然而却是一本包罗万象的秘籍。第二版新增了两个大主题,并用数十个小技巧丰富了本书内容,其中有个小绝招是如何在不溢出的情况下求两数均值,我写二分查找算法时直接就把这条拿来用了。这真是本令算法爱好者开怀畅读的书啊!”

—— GuySteele

 

内容简介

在本书中,作者给我们带来了一大批极为诱人的知识,其中包括各种节省程序运行时间的技巧、算法与窍门。学习了这些技术,程序员就可写出优雅高效的软件,同时还能洞悉其中原理。这些技术极为实用,而且其问题本身又非常有趣,有时甚至像猜谜解谜一般,需要奇思妙想才行。简而言之,软件开发者看到这些改进程序效率的妙计之后,定然大喜。

本书较第1版增补了大量内容

 

  • 新增了循环冗余校验(CRC)一章,其中讲解了常用的CRC-32校验码
  • 新增了纠错码(ECC)一章,其中讲解了汉明码
  • 详解了除数为常数的整数除法,增补了仅含移位操作和加法操作的算法
  • 不计算商而直接求余数
  • 扩充了与种群计数和前导0计数有关的知识
  • 数组种群计数
  • 执行压缩与扩展操作的新算法
  • LRU算法
  • 浮点数与整数互化
  • 估算浮点数的平方根倒数
  • 一系列离散函数图像
  • 各章均配有习题与参考答案

 

作者简介

HenryS. Warren, Jr.  计算机科学家,在IBM供职50余年,经历了IBM704时代、PowerPC时代及其后种种更迭。曾参与多个军事指挥与控制系统工程,并且参加了由Jack Schwarz领衔的“SET语言”项目。自1973年起,Henry就职于IBM研发部,努力探索编译器和计算机架构。当前正研究一种旨在每秒执行百亿亿次运算的超级计算机。他拥有纽约大学柯朗数学科学研究所计算机科学博士学位。

 

译者简介

爱飞翔  资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。业余爱好文学和历史,有一定的文学造诣。翻译并出版了多本计算机著作,如《NoSQL精粹》、《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》、《测试驱动的iOS开发》和《JavaScript应用开发实践指南》等。