Skip to content

GuangweiJiang/programming_pearls

Repository files navigation

Programming Pearls 

Table of Contents

********
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 [Sketch](啊哈!算法)
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 [Sketch](编写正确的程序)
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 [Sketch](编程小事)
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 · Little's Law · Principles · Problems · Further Reading · Quick Calculations in Everyday Life 

Column 8: Algorithm Design Techniques [Sketch](算法设计技术) 
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 

********
PART 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 [Sketch](堆) 
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 for Selected Problems 
For Column 1   For Column 5   For Column 7   For Column 15 

Index 

About

the codes of "programming pearls(2nd edition)"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published