CHAPTER ONE:ANALYSIS OF ALGORITHMS
1.1 Why Analyze an Algorithm?
1.2 Computational Complexity
1.3 Analysis of Algorithms
1.4 Average-Case Analysis
1.5 Example: Analysis of Quieksort
1.6 Asymptotic Approximations
1.7 Distributions
1.8 Probabilistic Algorithms
CHAPTER TWO: RECURRENCE RELATIONS
2.1 Basic Properties
2.2 First-Order Recurrences
2.3 Nonlinear First-Order Recurrences
2.4 Higher-Order Recurrences
2.5 Methods for Solving Recurrences
2.6 Binary Divide-and-Conquer Recurrences and Binary
Numbers
2.7 General Divide-and-Conquer Recurrences
CHAPTER THREE: GENERATING FUNCTIONS
3.1 Ordinary Generating Functions
3.2 Exponential Generating Functions
3.3 Generating Function Solution of Recurrences
3.4 Expanding Generating Functions
3.5 Transformations with Generating Functions
3.6 Functional Equations on Generating Functions
3.7 Solving the Quicksort Median-of-Three Recurrencewith OGFS
3.8 Counting with Generating Functions
3.9 The Symbolic Method
3.10 Lagrange Inversion
3.11 Probability Generating Functions
3.12 Bivariate Generating Functions
3.13 Special Functions
CHAPTER FOUR: ASYMPTOTIC APPROXIMATIONS
4.1 Notation for Asymptotic Approximations
4.2 Asymptotic Expansions
4.3 Manipulating Asymptotic Expansions
4.4 Asymptotic Approximations of Finite Sums
4.5 Euler-Maclaurin Summation
4.6 Bivariate Asymptotics
4.7 Laplace Method
4.8 “Normal”Examples from the Analysis of Algorithms
4.9 “Poisson” Examples from the Analysis of Algorithms
4.10 Generating Function Asymptotics
CHAPTER FIVE: TREES
5.1 Binary Trees
5.2 Trees and Forests
5.3 Properties of Trees
5.4 Tree Algorithms
5.5 Binary Search Trees
5.6 Average Path Length in Catalan Trees
5.7 Path Length in Binary Search Trees
5.8 Additive Parameters of Random Trees
5.9 Height
5.10 Summary of Average-Case Results on Properties of Trees
5.11 Representations of Trees and Binary Trees
5.12 Unordered Trees
5.13 Labelled Trees
5.14 Other Types of Trees
CHAPTER SIX: PERMUTATIONS
6.1 Basic Properties of Permutations
6.2 Algorithms on Permutations
6.3 Representations of Permutations
6.4 Enumeration Problems
6.5 Analyzing Properties of Permutations with CGFs
6.6 Inversions and Insertion Sorts
6.7 Left-to-Right Minima and Selection Sort
6.8 Cycles and In Situ Permutation
6.9 Extremal Parameters
CHAPTER SEVEN:STRINGS AND TRIES
7.1 String Searching
7.2 Combinatorial Properties of Bitstrings
7.3 Regular Expressions
7.4 Finite-State Automata and the Knuth-Morris-Pratt
Algorithm
7.5 Context-Free Grammars
7.6 Tries
7.7 Trie Algorithms
7.8 Combinatorial Properties of Tries
7.9 Larger Alphabets
CHAPTER EIGHT: WORDS AND MAPS
8.1 Hashing with Separate Chaining
8.2 Basic Properties of Words
8.3 Birthday Paradox and Coupon Collector Problem
8.4 Occupancy Restrictions and Extremal Parameters
8.5 Occupancy Distributions
8.6 Open Addressing Hashing
8.7 Maps
8.8 Integer Facterization and Maps
List of Theorems
Index