演算法心得:高效演算法的奧祕
寫程式碼總會遇到難題,時而苦於乘法操作頻繁溢位,時而苦於開方演算法太過笨拙,於是,程式設計師之間口耳相傳的那些程式碼祕籍,這些時候就該大顯身手了。有些小程式,僅兩三行程式碼即能解決平常數十行程式碼方能實現的功能;還有些小程式,只用0x24924925這般神奇的數字,即能成倍提升運算速度。讀者若對此感興趣,則《演算法心得:高效演算法的奧祕(原書第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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《演算法心得:高效演算法的奧祕》點評贈書演算法
- 高效jQuery的奧祕jQuery
- 前端資料結構與演算法的奧祕前端資料結構演算法
- 學習的奧祕
- 語言的奧祕
- 一種高效的尋路演算法 - B*尋路演算法演算法
- MyBatis和Spring整合的奧祕MyBatisSpring
- Android App秒開的奧祕AndroidAPP
- Vue $mount的掛載入口的奧祕Vue
- 遺傳演算法組卷使用心得演算法
- 打造自己的高效能AlphaZero演算法演算法
- MySQL 資料庫設計的“奧祕”MySql資料庫
- 探索Google App Engine背後的奧祕GoAPP
- 開發高效演算法之初窺演算法
- Bresenham高效畫線演算法 (轉)演算法
- 詳解蘋果的黑魔法 – KVO 的奧祕蘋果
- 圖資料庫奧祕初探資料庫
- 高效字串匹配演算法——BM 演算法詳解(C++)字串匹配演算法C++
- 頭條的演算法推薦,並不神祕!演算法
- 學習資料結構與演算法心得資料結構演算法
- dijkstra and A* search 演算法心得及JS實現演算法JS
- 一個快速、高效的Levenshtein演算法實現演算法
- Rabbit演算法:輕量高效的加密利器演算法加密
- 蜻蜓點水說說Redis的ziplist的奧祕Redis
- 美團的奧祕:與王興聊技術的力量
- 演算法的盡頭是小學奧數?小學奧數必須掌握的30個知識模組演算法
- 4階幻方邏輯語言的奧祕
- LunaMetrics:社交網路的介面設計奧祕
- 蜻蜓點水說說Redis的String的奧祕Redis
- 諮詢的奧祕:尋求和提出建議的智慧
- 讀溫伯格的《諮詢的奧祕》有感淺談
- 素數推斷演算法(高效率)演算法
- 細粒度物體檢測演算法的升級揭祕演算法
- 拒絕遺忘:高效的動態規劃演算法動態規劃演算法
- Slope One :簡單高效的協同過濾演算法演算法
- SAP Fiori應用裡日期格式的顯示奧祕
- Netty 原始碼分析之拆包器的奧祕Netty原始碼
- 【原創】VB P-code -- 虛擬碼的奧祕