Introduction to Algorithms

by Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest



PREFACE

CHAPTER 1: INTRODUCTION

PART I: Mathematical Foundations

CHAPTER 2: GROWTH OF FUNCTIONS

CHAPTER 3: SUMMATIONS

CHAPTER 4: RECURRENCES

CHAPTER 5: SETS, ETC.

CHAPTER 6: COUNTING AND PROBABILITY

PART II: Sorting and Order Statistics

CHAPTER 7: HEAPSORT

CHAPTER 8: QUICKSORT

CHAPTER 9: SORTING IN LINEAR TIME

CHAPTER 10: MEDIANS AND ORDER STATISTICS

PART III: Data Structures

CHAPTER 11: ELEMENTARY DATA STRUCTURES

CHAPTER 12: HASH TABLES

CHAPTER 13: BINARY SEARCH TREES

CHAPTER 14: RED-BLACK TREES

CHAPTER 15: AUGMENTING DATA STRUCTURES

PART IV: Advanced Design and Analysis Techniques

CHAPTER 16: DYNAMIC PROGRAMMING

CHAPTER 17: GREEDY ALGORITHMS

CHAPTER 18: AMORTIZED ANALYSIS

PART V: Advanced Data Structures

CHAPTER 19: B-TREES

CHAPTER 20: BINOMIAL HEAPS

CHAPTER 21: FIBONACCI HEAPS

CHAPTER 22: DATA STRUCTURES FOR DISJOINT SETS

PART VI: Graph Algorithms

CHAPTER 23: ELEMENTARY GRAPH ALGORITHMS

CHAPTER 24: MINIMUM SPANNING TREES

CHAPTER 25: SINGLE-SOURCE SHORTEST PATHS

CHAPTER 26: ALL-PAIRS SHORTEST PATHS

CHAPTER 27: MAXIMUM FLOW

PART VII: Selected Topics

CHAPTER 28: SORTING NETWORKS

CHAPTER 29: ARITHMETIC CIRCUITS

CHAPTER 30: ALGORITHMS FOR PARALLEL COMPUTERS

CHAPTER 31: MATRIX OPERATIONS

CHAPTER 32: POLYNOMIALS AND THE FFT

CHAPTER 33: NUMBER-THEORETIC ALGORITHMS

CHAPTER 34: STRING MATCHING

CHAPTER 35: COMPUTATIONAL GEOMETRY

CHAPTER 36: NPCOMPLETENESS

CHAPTER 37: APPROXIMATION ALGORITHMS

BIBLIOGRAPHY