HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This bundle includes:
THE PRINT BOOK: Despite growing interest, basic information on methods and models for mathematically analyzing algorithms has rarely been directly accessible to practitioners, researchers, or students. An Introduction to the Analysis of Algorithms, Second Edition, organizes and presents that knowledge, fully introducing primary techniques and results in the field.
Robert Sedgewick and the late Philippe Flajolet have drawn from both classical mathematics and computer science, integrating discrete mathematics, elementary real analysis, combinatorics, algorithms, and data structures. They emphasize the mathematics needed to support scientific studies that can serve as the basis for predicting algorithm performance and for comparing different algorithms on the basis of performance.
THE VIDEO LECTURE SERIES: There are 9 lecture videos that will be streamed on the Informit.com site; each lecture is approximately 80 minutes in length and focuses on a specific topic related to the Introduction to the Analysis of Algorithms book. Taken together, these lectures form an introduction to the analysis of algorithms, including analytic combinatorics. Basic coverage of recurrences, generating functions, and asymptotics leads to an introduction to labelled and unlabelled combinatorial classes. Then we survey trees, permutations, strings and tries, and words and mappings, with applications drawn from the study of widely-used algorithms. Each lecture corresponds to a chapter in the book, so there is a suggested reading corresponding to each lecture video.
Chapter 1: Analysis of Algorithms 3
1.1 Why Analyze an Algorithm? 3
1.2 Theory of Algorithms 6
1.3 Analysis of Algorithms 13
1.4 Average-Case Analysis 16
1.5 Example: Analysis of Quicksort 18
1.6 Asymptotic Approximations 27
1.7 Distributions 30
1.8 Randomized Algorithms 33
Chapter 2: Recurrence Relations 41
2.1 Basic Properties 43
2.2 First-Order Recurrences 48
2.3 Nonlinear First-Order Recurrences 52
2.4 Higher-Order Recurrences 55
2.5 Methods for Solving Recurrences 61
2.6 Binary Divide-and-Conquer Recurrences and Binary Numbers 70
2.7 General Divide-and-Conquer Recurrences 80
Chapter 3: Generating Functions 91
3.1 Ordinary Generating Functions 92
3.2 Exponential Generating Functions 97
3.3 Generating Function Solution of Recurrences 101
3.4 Expanding Generating Functions 111
3.5 Transformations with Generating Functions 114
3.6 Functional Equations on Generating Functions 117
3.7 Solving the Quicksort Median-of-Three Recurrence with OGFs 120
3.8 Counting with Generating Functions 123
3.9 Probability Generating Functions 129
3.10 Bivariate Generating Functions 132
3.11 Special Functions 140
Chapter 4: Asymptotic Approximations 151
4.1 Notation for Asymptotic Approximations 153
4.2 Asymptotic Expansions 160
4.3 Manipulating Asymptotic Expansions 169
4.4 Asymptotic Approximations of Finite Sums 176
4.5 Euler-Maclaurin Summation 179
4.6 Bivariate Asymptotics 187
4.7 Laplace Method 203
4.8 “Normal” Examples from the Analysis of Algorithms 207
4.9 “Poisson” Examples from the Analysis of Algorithms 211
Chapter 5: Analytic Combinatorics 219
5.1 Formal Basis 220
5.2 Symbolic Method for Unlabelled Classes 221
5.3 Symbolic Method for Labelled Classes 229
5.4 Symbolic Method for Parameters 241
5.5 Generating Function Coefficient Asymptotics 247
Chapter 6: Trees 257
6.1 Binary Trees 258
6.2 Forests and Trees 261
6.3 Combinatorial Equivalences to Trees and Binary Trees 264
6.4 Properties of Trees 272
6.5 Examples of Tree Algorithms 277
6.6 Binary Search Trees 281
6.7 Average Path Length in Catalan Trees 287
6.8 Path Length in Binary Search Trees 293
6.9 Additive Parameters of Random Trees 297
6.10 Height 302
6.11 Summary of Average-Case Results on Properties of Trees 310
6.12 Lagrange Inversion 312
6.13 Rooted Unordered Trees 315
6.14 Labelled Trees 327
6.15 Other Types of Trees 331
Chapter 7: Permutations 345
7.1 Basic Properties of Permutations 347
7.2 Algorithms on Permutations 355
7.3 Representations of Permutations 358
7.4 Enumeration Problems 366
7.5 Analyzing Properties of Permutations with CGFs 372
7.6 Inversions and Insertion Sorts 384
7.7 Left-to-Right Minima and Selection Sort 393
7.8 Cycles and In Situ Permutation 401
7.9 Extremal Parameters 406
Chapter 8: Strings and Tries 415
8.1 String Searching 416
8.2 Combinatorial Properties of Bitstrings 420
8.3 Regular Expressions 432
8.4 Finite-State Automata and the Knuth-Morris-Pratt Algorithm 437
8.5 Context-Free Grammars 441
8.6 Tries 448
8.7 Trie Algorithms 453
8.8 Combinatorial Properties of Tries 459
8.9 Larger Alphabets 465
Chapter 9: Words and Mappings 473
9.1 Hashing with Separate Chaining 474
9.2 The Balls-and-Urns Model and Properties of Words 476
9.3 Birthday Paradox and Coupon Collector Problem 485
9.4 Occupancy Restrictions and Extremal Parameters 495
9.5 Occupancy Distributions 501
9.6 Open Addressing Hashing 509
9.7 Mappings 519
9.8 Integer Factorization and Mappings 532
List of Theorems 543
List of Tables 545
List of Figures 547
Index 551