Support us


to write
more tutorials




to create new
visualizers




to keep sharing
free knowledge
for you


every dollar helps
Explore the English language on a new scale using AI-powered English language navigator.

Introduction to Algorithms, Second Edition

by Thomas Cormen (Author), Charles Leiserson (Author), Ronald Rivest (Author), Clifford Stein (Author)

Introduction to Algorithms Cover

The book is a classic text on data structures and algorithms. It covers most of the basic structures and includes extensive analysis of the correctness and complexity issues. Book is made like a textbook and has many exercises. The algorithms are presented in pseudo-code only, so you are better to find one more book with implementations in the language you prefer the most. We would recommend the book to anyone, studying data structures and algorithms.

Focus Theory Implementation  
Level Elementary Intermediate Advanced
Language Pseudocode    

Explore "Introduction to Algorithms" on Amazon.com

Table of Contents

I. Foundations

1. The Role of Algorithms in Computing

2. Getting Started

3. Growth of Functions

4. Recurrences

5. Probabilistic Analysis and Randomized Algorithms

II. Sorting and Order Statistics

6. Heapsort

7. Quicksort

8. Sorting in Linear Time

9. Medians and Order Statistics

III. Data Structures

10. Elementary Data Structures

11. Hash Tables

12. Binary Search Trees

13. Red-Black Trees

14. Augmenting Data Structures

IV. Advanced Design and Analysis Techniques

15. Dynamic Programming

16. Greedy Algorithms

17. Amortized Analysis

V. Advanced Data Structures

18. B-Trees

19. Binomial Heaps

20. Fibonacci Heaps

21. Data Structures for Disjoint Sets

VI. Graph Algorithms

22. Elementary Graph Algorithms

23. Minimum Spanning Trees

24. Single-Source Shortest Paths

25. All-Pairs Shortest Paths

26. Maximum Flow

VII. Selected Topics

27. Sorting Networks

28. Matrix Operations

29. Linear Programming

30. Polynomials and the FFT (Fast Fourier Transform)

31. Number-Theoretic Algorithms

32. String Matching

33. Computational Geometry

34. NP-Completeness

35. Approximation Algorithms

VIII. Appendix: Mathematical Background

A. Summations

B. Sets, Etc.

C. Counting and Probability