本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨程序员的实际问题展开讨论,从而引导读者理解问题并学会解决问题的技能,这些都是程序员实际编程生涯中的基本技能。为此,本书给出了一些精心设计的有趣而且颇具指导意义的程序,这些程序能够为那些复杂的编程问题提供清晰而且完备的解决思路,书中还充满了对实用程序设计技巧及基本设计原则的清晰而睿智的描述。
本书在第一版的基础上增加了3个方面的新内容:测试、调试和计量,集合表示,字符串问题,并对第一版的所有程序都进行了改写,生成了等量的新代码。
本书针对程序设计人员探讨了一系列的实际问题,这些问题是对现实中常见问题的归纳总结。作者虽然没有给出解决这些问题的具体代码,但始终非常富有洞察力和创造力地围绕着这些折磨程序员的实际问题展开讨论,从而引导读者理解问题并学会解决问题的技能,这些都是程序员实际编程生涯中的基本技能。为此,本书给出了一些精心设计的有趣而且颇具指导意义的程序,这些程序能够为那些复杂的编程问题提供清晰而且完备的解决思路,书中还充满了对实用程序设计技巧及基本设计原则的清晰而睿智的描述。
本书在第一版的基础上增加了3个方面的新内容:测试、调试和计量,集合表示,字符串问题,并对第一版的所有程序都进行了改写,生成了等量的新代码。
PartⅠ:PRELIMINARIES
Column1:Cracking the Oyster
A Friendly Conversation
Precise Problem Statement
Program Design
Implementation Sketch
Principles
Further Reading
Column2:Aha!Algorithms
Three Problems
Ubiquitous Binary Search
The Power of Primitives
Getting It Together:Sorting
Prnciples
Problems
Further Reading
Implementing an Anagram Program
Column3:Data Structures Programs
Column4:Writing Correct Programs
Column5:A Small Matter of Programming
PartⅡ:PERFORMANCE
Column6:Perspective on Performance
Column7:The Back of the Envelope
Column8:Algorithm Design Techniques
Column9:Code Tuning
Column10:Squeezing Space
PartⅢ:THE PRODUCT
Column11:Sorting
Column12:A Sample Problem
Column13:Searching
Column14:Heaps
Column15:Strings of Pearls
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