
| 多年以来。当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺.计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”。这些文章是《ACM通讯》最受欢迎的专栏文章,最终结集为两部书出版。《编程珠玑(英文版·第2版)》为第一卷。主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。 在书中,作者选取许多具有典型意义的复杂编程和算法问题。生动描绘了历史上众多大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。引导读者开展创新性的思考。书中透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣。而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。 |
| 本特利,Jon Bentley,1953年2月20日出生于美国加州长滩。1974年毕业于斯坦福大学数学系,1976年获北卡罗来纳大学博士学位。他先后任职于卡内基-梅隆大学(1976-1982)、贝尔实验室(1982-2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学任教期间。他培养了许多后来知名的计算机大家。包括Scribe的开发者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 Reading Column 2: Aha! Algorithms Three Problems·Ubiquitous Binary Search·The Power of Primitives·Getting It Together: Sorting·Principles·Problems·Further Reading·Implementing an Anagram Program Column 3: Data Structures Programs A Survey Program·Form-Letter Programming·An Array of Examples·Structuring Data·Powerful Tools for Specialized Data·Principles·Problems·Further Reading Column 4: Writing Correct Programs The Challenge of Binary Search·Writing the Program·Understanding the Program·Principles·The Roles of Program Verification·Problems·Further Reading Column 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·Debugging Part II: PERFORMANCE Column 6: Perspective on Performance A Case Study·Design Levels·Principles·Problems·Further Reading Column 7: The Back of the Envelope Basic Skills·Performance Estimates·Safety Factors·Littles Law·Principles·Problems·Further Reading·Quick Calculations in Everyday Life Column 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 Reading Column 9: Code Tuning 7 A Typical Story·A First Aid Sampler·Major Surgery——Binary Search·Principles·Problems·Further Reading Column 10: Squeezing Space The KeySimplicity·An Illustrative Problem·Techniques for Data Space·Techniques for Code Space·Principles·Problems·Further Reading·A Big Squeeze Part III: THE PRODUCT Column 11: Sorting 115 Insertion Sort·A Simple Quicksort·Better Quicksorts·Principles·Problems·Further Reading Column 12: A Sample Problem The Problem·One Solution·The Design Space·Principles·Problems·Further Reading Column 13: Searching The Interface·Linear Structures·Binary Search Trees·Structures for Integers·Principles·Problems·Further Reading·A Real Searching Problem Column 14: Heaps The Data Structure·Two Critical Functions·Priority Queues·A Sorting Algorithm·Principles·Problems·Further Reading Column 15: Strings of Pearls Words·Phrases·Generating Text·Principles·Problems·Further Reading Epilog 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 |
商品评论(0条)