編程珠璣(英文版?第2版)

出版時間:2010-8  出版社:人民郵電出版社  作者:[美] Jon Bentley  頁數(shù):239  
Tag標簽:無  

前言

計算機編程有很多方面。Fred Brooks在《人月神話》一書中為我們描繪了全景,他的文章強調(diào)了管理在大型軟件項目中所起的關鍵作用。而Steve McConnell在《代碼大全》一書中更具體地傳授了良好的編程風格。這兩本書所討論的是好軟件的關鍵因素和專業(yè)程序員應有的特征。遺憾的是,僅僅熟練地運用這些可靠的工程原理,不見得一定能夠如期完成軟件并順利運行。關于本書本書描述了計算機編程更具魅力的一面:在可靠的工程之外,在洞察力和創(chuàng)造力范圍內(nèi)結晶而出的編程珠璣。正如自然界中的珍珠來自干磨礪牡蠣的細沙一樣,這些編程珠璣來自于磨礪程序員的實際問題。書中的程序都很有趣,傳授了重要的編程技巧和基本的設計原理。本書大部分內(nèi)容最初發(fā)表在《ACM通訊》中我主持的“編程珠璣”專欄。這些內(nèi)容經(jīng)過匯總和修訂,在1986年結集出版,成為了本書的第1版。第1版的13篇文章中,有12篇都在本版中做了大幅修訂;此外,本版還補充了3篇新的內(nèi)容。閱讀本書只需要讀者具有某種高級語言的編程經(jīng)驗。書中偶爾會出現(xiàn)一些高級技術(如C++中的模板等),對此不熟悉的讀者可以跳過這些內(nèi)容,基本上不影響閱讀。本書每一章都獨立成篇,各章之間卻又有著邏輯分組。第1章至第5章構成本書的第一部分,這部分回顧了編程的基本原理:問題定義、算法、數(shù)據(jù)結構以及程序驗證和測試。第二部分圍繞效率這個主題展開。效率問題有時本身就很重要,又永遠都是進入有趣編程問題的絕佳跳板。第三部分用這些技術來解決排序、搜索和字符串等重要問題。閱讀本書的一個提示:不要讀得太快。要仔細閱讀,一次讀一章。要嘗試解答書中提出的問題——有些問題需要集中精力思考一兩個小時才會想清楚。然后,要努力解答每章末尾的習題:當讀者寫下答案時,從本書學到的大部分知識就會躍然紙上。

內(nèi)容概要

  本書是計算機科學方面的經(jīng)典名著。書的內(nèi)容圍繞程序設計人員面對的一系列實際問題展開。作者Jon Bentley以其獨有的洞察力和創(chuàng)造力,引導讀者理解這些問題并學會解決方法,而這些正是程序員實際編程生涯中至關重要的。本書的特色是通過一些精心設計的有趣而又頗具指導意義的程序,對實用程序設計技巧及基本設計原則進行了透徹而睿智的描述,為復雜的編程問題提供了清晰而完備的解決思路。本書對各個層次的程序員都具有很高的閱讀價值。

作者簡介

作者:(美國)本特利(Jon Bentley)本特利,Jon Bentley,1953年2月20日出生于美國加州長灘。1974年畢業(yè)于斯坦福大學數(shù)學系,1976年獲北卡羅來納大學博士學位。他先后任職于卡內(nèi)基-梅隆大學(1976-1982)、貝爾實驗室(1982-2001)和Avaya實驗室(2001年至今)。在卡內(nèi)基-梅隆大學任教期間。他培養(yǎng)了許多后來知名的計算機大家。包括Scribe的開發(fā)者Brian Reid,Tcl語言設計者John Ousterhout,Java專家Joshua Bloch,Java語言設計者James Gosling,《算法導論》作者之——Charles Leiserson。2004年榮獲Dr. Dobb’s程序設計卓越獎。

書籍目錄

Part I: PRELIMINARIES Column 1: Cracking the Oyster    A Friendly Conversation·Precise Problem Statement·Program Design·Implementation Sketch·Principles·Problems·Further ReadingColumn 2: Aha! Algorithms    Three Problems·Ubiquitous Binary Search·The Power of Primitives·Getting It Together: Sorting·Principles·Problems·Further Reading·Implementing an Anagram ProgramColumn 3: Data Structures Programs    A Survey Program·Form-Letter Programming·An Array of Examples·Structuring Data·Powerful Tools for Specialized Data·Principles·Problems·Further ReadingColumn 4: Writing Correct Programs    The Challenge of Binary Search·Writing the Program·Understanding the Program·Principles·The Roles of Program Verification·Problems·Further ReadingColumn 5: A Small Matter of Programming    From Pseudocode to C·A Test Harness·The Art of Assertion·Automated Testing·Timing·The Complete Program·Principles·Problems·Further Reading·DebuggingPart II: PERFORMANCE Column 6: Perspective on Performance    A Case Study·Design Levels·Principles·Problems·Further ReadingColumn 7: The Back of the Envelope    Basic Skills·Performance Estimates·Safety Factors·Little's Law·Principles·Problems·Further Reading·Quick Calculations in Everyday LifeColumn 8: Algorithm Design Techniques    The Problem and a Simple Algorithm·Two Quadratic Algorithms·A Divide-and-Conquer Algorithm·A Scanning Algorithm·What Does It Matter?·Principles·Problems·Further ReadingColumn 9: Code Tuning 7   A Typical Story·A First Aid Sampler·Major Surgery——Binary Search·Principles·Problems·Further ReadingColumn 10: Squeezing Space    The KeySimplicity·An Illustrative Problem·Techniques for Data Space·Techniques for Code Space·Principles·Problems·Further Reading·A Big SqueezePart III: THE PRODUCT Column 11: Sorting  115   Insertion Sort·A Simple Quicksort·Better Quicksorts·Principles·Problems·Further ReadingColumn 12: A Sample Problem    The Problem·One Solution·The Design Space·Principles·Problems·Further ReadingColumn 13: Searching    The Interface·Linear Structures·Binary Search Trees·Structures for Integers·Principles·Problems·Further Reading·A Real Searching ProblemColumn 14: Heaps    The Data Structure·Two Critical Functions·Priority Queues·A Sorting Algorithm·Principles·Problems·Further ReadingColumn 15: Strings of Pearls    Words·Phrases·Generating Text·Principles·Problems·Further ReadingEpilog to the First Edition Epilog to the Second Edition Appendix 1: A Catalog of Algorithms Appendix 2: An Estimation Quiz Appendix 3: Cost Models for Time and Space Appendix 4: Rules for Code Tuning Appendix 5: C++ Classes for Searching Hints for Selected Problems Solutions to Selected Problems Index 

章節(jié)摘錄

插圖:Algorithm Tuning. The simple algorithm always uses small time steps to handle the rare case that two particles come close to one another. The tree data structure allows such pairs to be recognized and handled by a special function. That doubles the time step size and thereby halves the run time of the program.Data Structure Reorganization. The tree that represents the initial set of objects is quite poor at representing later sets. Reconfiguring the data structure at each time step costs a little time, but reduces the number of local calculations and thereby halves the total run time.Code Tuning. Due to additional numerical accuracy provided by the tree, 64-bitdouble-precision floating point numbers could be replaced by 32-bit single-precision numbers; that change halved the run time. Profiling the program showed that 98 percent of the run time was spent in one function; rewriting that code in assembly language increased its speed by a factor of 2.5.Hard ware. After all the above changes, the program still required two days of time on a departmental machine that cost a quarter of a million dollars, and several runs of the program were desired. Appel therefore moved the program to a slightly more expensive machine equipped with a floating point accelerator, which halved its run time again.

媒體關注與評論

“《編程珠璣》第1版是對我職業(yè)生涯早期影響最大的一本書。其中的許多真知灼見多年之后仍然使我受益匪淺。Jon在第2版中對素材進行了大量更新。許多新內(nèi)容讓我耳目一新?!薄  猄teve McConnell,《代碼大全》作者“對每一位遇到的程序員,我都會毫不遲疑地建議他閱讀并不斷重讀這部經(jīng)典之作?!薄  猄lashdot

編輯推薦

多年以來。當程序員們推選出最心愛的計算機圖書時,《編程珠璣》總是位于前列。正如自然界里珍珠出自細沙對牡蠣的磨礪.計算機科學大師Jon Bentley以其獨有的洞察力和創(chuàng)造力,從磨礪程序員的實際問題中凝結出一篇篇不朽的編程“珠璣”。這些文章是《ACM通訊》最受歡迎的專欄文章,最終結集為兩部書出版?!毒幊讨榄^(英文版·第2版)》為第一卷。主要討論計算機科學中最本質(zhì)的問題:如何正確選擇和高效地實現(xiàn)算法。在書中,作者選取許多具有典型意義的復雜編程和算法問題。生動描繪了歷史上眾多大師們在探索解決方案中發(fā)生的軼事、走過的彎路和不斷精益求精的歷程。引導讀者開展創(chuàng)新性的思考。書中透徹闡述和總結了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程序設計技巧。解決方案的代碼均以C/C++語言編寫,不僅有趣。而且有很大的實戰(zhàn)示范意義。每章后所附習題極具挑戰(zhàn)性和啟發(fā)性,書末給出了簡潔的解答。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    編程珠璣(英文版?第2版) PDF格式下載


用戶評論 (總計129條)

 
 

  •   因為看了評論所以選擇了英文版的,收到感覺挺好的,印刷挺清晰,紙張也不錯,質(zhì)感挺好。這本書比較偏重編程中遇到的問題,對于編程的人來說的確是一本必讀的經(jīng)典。
  •   編程珠璣的英文版絕對物超所值!耶
  •   比較有意思的一本書,帶給人很多關于編程方面的思考,閱讀容易但是要徹底理解還是有難度
  •   這本書不適合快速讀,剛到手第一天看了前2章,但感覺看的太快,僅僅是開闊了眼界,發(fā)現(xiàn)程序原來可以這么寫,僅此而已。讀這本書要慢速讀多思考,對書中的問題最好能想想如果是自己,會如何用代碼實現(xiàn),才有所收獲。否則,跟看小說似的,讀過了也沒多大用。
  •   一本很經(jīng)典的編程方面的書,很值得購買,靜下心來好好讀一讀很有收獲
  •   很好的書,英文原版讀起來才有味道。每讀完一章都豁然開朗的感覺,對自己將來的編程思路會有巨大的拓展。
  •   經(jīng)典的編程書!
  •   繼c陷阱與缺陷.. c專家編程后又進的書...閱讀ing...
  •   此書編程經(jīng)典必讀書籍!無論是入門還是進階都會受益匪淺!
  •   編程經(jīng)典
  •   圖靈獎得主寫的編程書,可惜中文版翻譯的太爛了。
  •   程序員必讀書的前十名。英文也不難,我是一天一章的速度慢慢看的。經(jīng)典之作。
  •   沒什么好多說的,這是每個程序員要看的書
  •   慢慢看,英語原版,即學編程又學英語
  •   編程必看。
  •   紙質(zhì)不是很好,看的有點不爽。英文不是很好,看的有點問題,不過還是看英文版的理解的更好。
  •   大師John Bentley的杰作,值得仔細閱讀
  •   學到的思想很重要,看待問題,和解決問題
  •   非常實際又有趣的一本書
  •   不朽經(jīng)典,原味呈現(xiàn)??创蠹覍Ρ緯脑u價,毅然選擇了英文版。目前只是草草讀了開篇(還在上班中··T_T),不過還是推薦之。
  •   送貨速度不錯,這本書是經(jīng)典之作,專門買了英文版的,嘻嘻
  •   聽說很經(jīng)典的書,看評價說中文版翻譯很差勁,所以選擇了英文版的,讀起來可能吃力一點
  •   很經(jīng)典的入門算法書,適合學計算機的讀者們看看。
  •   作為算法的入門書籍,有很強的吸引性。書中的例子和問題能夠進一步引發(fā)思考。
  •   英文版的,看著確實有點費勁~~~建議英語不好的還是買翻譯版的~
  •   買個英文原版,雖然會費勁些,不過更原汁原味。書的質(zhì)量沒什么問題
  •   剛收到書,因為看到評論都說 中文版的翻譯不好,所以買了本英文版的。慢慢看吧。書包裝和質(zhì)量都很好
  •   書還沒到的說,這本書是經(jīng)典之作,很期待書的到來!
  •   英文版還是有點難度的
  •   英文版的原味,正在品讀!
  •   中文版據(jù)說翻譯的很差,所以買了英文版。不過對我來說,看英文比較費時間~~如果購買建議買英文版。
  •   普遍反映中文譯本翻譯不好,就果斷買了英文版
  •   這本主要講算法,千萬不要買中文版,買英文版就對了
  •   書內(nèi)容就不說了。??粗荛_心的。。買中文版的沒有必要 看英文的吧 不是很困難的 相信我 而且中文版的網(wǎng)上到處都是 可以下 看英文不懂的地方再看中文的。。很推薦這本書
  •   一本被眾多人廣為推薦的經(jīng)典書籍,剛剛拿到手,期待中……
    物流挺快的,就是書還是有點刺鼻的味道。
  •   這本書很經(jīng)典,之前看了翻譯的,質(zhì)量不怎樣,英文原版不錯
  •   很好的書,很經(jīng)典,通俗易懂!!
  •   英文書,剛買下時,翻了幾頁,現(xiàn)在都不想看了,英文看起來還是很頭痛的,不過書寫的確實非常好!國外的經(jīng)典書籍的,推薦的大家!不過一定要耐心、用心、恒心,才會成功!
  •   經(jīng)典就是經(jīng)典,書很不錯
  •   經(jīng)典的書還是看原版
  •   內(nèi)容絕對經(jīng)典。敘述直白,代碼詳實。適合學算法的看。
  •   算法導論外的另一本值得研究的書,閱讀越有滋味,需要好好的研讀。非常好的算法書、
  •   這本書期待已久,終于可以一睹精彩的內(nèi)容
  •   看到網(wǎng)上的評價很高,所以買的,學的英文原版的
  •   經(jīng)典之作,和中文版一起看吧還是~~哈哈
  •   經(jīng)典就是經(jīng)典啊,字字珠璣。不過,確實很高深!
  •   看了之后,覺得很多都是經(jīng)典。
  •   這本書是可以隨著你成長的好書。
  •   強烈推薦讀這本書
  •   主要是在看方法而不是代碼細節(jié)。
  •   紙質(zhì)泛黃,有一種老書的感覺。。但行文流暢,值得一讀。。
  •   書還沒看。包裝很好。
  •   比翻譯的好多了,還是要看原版的書呀。
  •   希望多印刷點老書~
  •   英文的,原汁原味。
    這是一本計科童鞋必讀之書~!
  •   書不錯,但是后悔買英文的了,看起來很吃力
  •   現(xiàn)在沒有太多時間看書,所以對書比較挑
    看到第二章了,是本好書,在堅持寫讀書筆記
  •   書很好,現(xiàn)在字啊看,如果送來的時候能多些保護就好了
  •   很好的書,原版很不錯
  •   很不錯的書,發(fā)書也挺快的
  •   紙質(zhì)沒有想象的好,內(nèi)容還不錯
  •   到手就在看了,當鍛煉自己了,內(nèi)容還是不錯的
  •   紙質(zhì)不好,其他都不錯!內(nèi)容很好!
  •   用來學英語的,寫得很不錯。
  •   感覺還行,紙質(zhì)不是特別好
  •   不錯,比中文版好多了。
  •   能買到原版很好!
  •   明年就要畢業(yè)了,Programming Pearls,Cracking the Coding Interview等都是必備的參考書。
  •   質(zhì)感不錯!
  •   怕看不懂
  •   憑著大家的口碑買下,質(zhì)量不錯,還是塑封來的呢.
  •   質(zhì)量很好,紙張挺厚的
  •   看了電子書,感覺不錯! 賣本紙質(zhì)的研讀一下
  •   幫bf買的,應該還不錯吧
  •   哈哈,不錯,無可挑剔。
  •   不錯,很喜歡,寒假在家慢慢讀。。。
  •   原版十分不錯,需花時間細讀
  •   還是英文原版好一點
  •   大家之作,無可挑剔
  •   印刷得不好,不應該這樣子的,不過是可以接收
  •   還不錯, 不過全英文,得耐心看看
  •   中文的翻譯的不太好,建議買英文的
  •   很大啟發(fā)~~~~
  •   字字珠璣,一本值得一讀的好書~
  •   質(zhì)量價格都很好
  •   一本不折不扣的算法類書籍,但是不是簡單闡述理論或者算法,雖然我到目前只讀了一章,但是我發(fā)現(xiàn)他把算法思路和實際問題結合的很不錯,后面還需要自己慢慢的體會。
    當然,看英語原版還是有點難,尤其是第一次看英文類的書籍,讀起來有點吃力,建議讀者可以找一本中文版的編程珠璣參照著看(電子書)
  •   經(jīng)典作品,英文版的不錯
  •   英文版閱讀起來還是比較吃力
  •   書是英文的,看的有點別扭,不過這不是書的問題,書還是不錯的,嘿嘿
  •   不錯,英文版的很好,只是紙有點成年老舊,總體還是好。
  •   久聞大名,本想買中文版的,但是網(wǎng)上評價不太好,所以就先入手英文版的吧
  •   如果你的時間比較寬裕,而且喜歡挑戰(zhàn)自己的話,建議買英文版。
  •   書很好,后來買了個中文版的對著看覺得還是英文的地道!
  •   本來以為我英語水平應該能看懂的,結果發(fā)現(xiàn)我還是要再補補計算機英語?。。?!
  •   書的印刷、紙張都很好,書角破損了,不過重要是內(nèi)容,滿意
  •   寫得很不錯的一本書,看完了受益匪淺
  •   還沒開始看,包裝挺精致,書的紙質(zhì)蠻好
  •   講了很多“小東西”,能干活的人很多,懂東西的人少,有時間還是要看看書,想想東西,人的區(qū)別就在這些小地方。
  •   好的書給予初學者的不僅是知識,更是一種思維的初始化。尤其是對于全英的書,我想接下來學習的時間會是美好的,難忘的。
  •   書買回來好久了,還沒翻過,全英文。
    這將是一個痛苦的過程。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7