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

出版時(shí)間:2010-8  出版社:人民郵電出版社  作者:[美] Jon Bentley  頁(yè)數(shù):239  
Tag標(biāo)簽:無(wú)  

前言

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

內(nèi)容概要

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

作者簡(jiǎn)介

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

書(shū)籍目錄

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.

媒體關(guān)注與評(píng)論

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

編輯推薦

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

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


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


用戶評(píng)論 (總計(jì)129條)

 
 

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

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7