Chapter-by-chapter knowledge from Introduction to Algorithms 3rd ed.

Chapter 1: The Role of Algorithms in Computing

Chapter 2: Getting Started

Chapter 3: Growth of Functions

Chapter 4: Divide-and-Conquer

Chapter 5: Probabilistic Analysis and Randomized Algorithms

Chapter 6: Heapsort

Chapter 7: Quicksort

Chapter 8: Sorting in Linear Time

Chapter 9: Medians and Order Statistics

Chapter 10: Elementary Data Structures

Chapter 11: Hash Tables

Chapter 12: Binary Search Trees

Chapter 13: Red-Black Trees

Chapter 14: Augmenting Data Structures

Chapter 15: Dynamic Programming

Chapter 16: Greedy Algorithms

Chapter 17: Amortized Analysis

Chapter 18: B-Trees

Chapter 19: Fibonacci Heaps