演算法心得:高效演算法的奧祕

hzbook2008發表於2014-03-10

寫程式碼總會遇到難題,時而苦於乘法操作頻繁溢位,時而苦於開方演算法太過笨拙,於是,程式設計師之間口耳相傳的那些程式碼祕籍,這些時候就該大顯身手了。有些小程式,僅兩三行程式碼即能解決平常數十行程式碼方能實現的功能;還有些小程式,只用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應用開發實踐指南》等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16502878/viewspace-1104407/,如需轉載,請註明出處,否則將追究法律責任。

相關文章