- 出版社: Addison-Wesley Professional; 2 (1999年10月7日)
- 丛书名: ACM Press
- 平装: 256页
- 语种： 英语
- ISBN: 0201657880
- 条形码: 0785342657883, 9780201657883
- 商品尺寸: 15.7 x 1.8 x 23.4 cm
- 商品重量: 363 g
- ASIN: 0201657880
- 用户评分: 分享我的评价
- 亚马逊热销商品排名: 图书商品里排第1,471,934名 (查看图书商品销售排行榜)
Programming Pearls (2nd Edition) (英语) 平装 – 1999年10月7日
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.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.Little's 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. A Typical Story.A First Aid Sampler.Major Surgery--Binary Search.Principles.Problems.Further Reading.Column 10. Squeezing Space. The Key--Simplicity.An Illustrative Problem.Techniques for Data Space.Techniques for Code Space.Principles.Problems.Further Reading.A Big Squeeze.III. THE PRODUCT. Column 11. Sorting. 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.
III. THE PRODUCT.
|5 星 (0%)|
|4 星 (0%)|
|3 星 (0%)|
|2 星 (0%)|
|1 星 (0%)|
Pages look like they were printed on an office printer/copier.
Each column has been reorganized as a chapter. Chapters usually start with the presentation of a practical problem. Then various solutions are presented and are used as lessons to be learned. The writing style is clear and fun.
Programming Pearls is not a usual book teaching new programming concepts. Although it contains good and sometimes quite novel ideas, the aim of the book is not to teach something new. For example, the search and sort algorithms presented are well-known. The aim is to remind programmers to think hard before starting writing code. The book has great chapter on back-of-the-envelope computation for example which is useful when comparing various solutions. The easy solutions to the column's problems are usually very slow. The `good' solutions are lightening fast but require thinking hard about the problems. I would recommend having a book about algorithms nearby when reading Programming Pearls.
The book is full of little (and some not so little) exercises that are given throughout the chapters. Solutions or hints are given at the end. The exercises usually take a few hours to do properly and are a great resource. Again the emphasis is on making the reader think.
If you consider programming a repetitious activity, Programming Pearls will provoke you into thinking harder about finding elegant solutions. I recommend this book.