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
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
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