Introduction
Some exercises and problems in Introduction to Algorithms (CLRS) 3rd edition. Never ever trust a single word of the repo.
You can use TeX All the Things Chrome extension to read the Markdown files. Please let me know if you found wrong formatting since there are conflicts in the grammars of Markdown and TeX.
Notebook Summary
I Foundations
-
1 The Role of Algorithms in Computing
-
2 Getting Started
-
3 Growth of Functions
-
4 Divide-and-Conquer
-
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 Algorithm
- 16.1 An activity-selection problem
- 16.2 Elements of the greedy strategy
- 16.3 Huffman codes
- 16.4 Matroids and greedy methods
- 16.5 A task-scheduling problem as a matroid
- Problems
-
17 Amortized Analysis
V Advanced Data Structures
-
18 B-Trees
-
19 Fibonacci Heaps
- 19.1 Structure of Fibonacci heaps
- 19.2 Mergeable-heap operations
- 19.3 Decreasing a key and deleting a node
- 19.4 Bounding the maximum degree
- Problems
-
20 van Emde Boas Trees
-
21 Data Structures for Disjoint Sets
VI Graph Algorithms
-
22 Elementary Graph Algorithms
-
23 Minimum Spanning Trees
-
24 Single-Source Shortest Paths
- 24.1 The Bellman-Ford algorithm
- 24.2 Single-source shortest paths in directed acyclic graphs
- 24.3 Dijkstra's algorithm
- 24.4 Difference constraints and shortest paths
- 24.5 Proofs of shortest-paths properties
- Problems
-
25 All-Pairs Shortest Paths
-
26 Maximum Flow
- 26.1 Flow networks
- 26.2 The Ford-Fulkerson method
- 26.3 Maximum bipartite matching
- 26.4 Push-relabel algorithms
- 26.5 The relabel-to-front algorithm
- Problems
VII Selected Topics
-
27 Multithreaded Algorithms
-
28 Matrix Operations
- 28.1 Solving systems of linear equations
- 28.2 Inverting matrices
- 28.3 Symmetric positive-definite matrices and least-squares approximation
- Problems
-
29 Linear Programming
- 29.1 Standard and slack forms
- 29.2 Formulating problems as linear programs
- 29.3 The simplex algorithm
- 29.4 Duality
- 29.5 The initial basic feasible solution
- Problems
-
30 Polynomials and the FFT
- 30.1 Representing polynomials
- 30.2 The DFT and FFT
- 30.3 Efficient FFT implementations
- Problems
-
31 Number-Theoretic Algorithms
-
32 String Matching
-
33 Computational Geometry
- 33.1 Line-segment properties
- 33.2 Determining whether any pair of segments intersects
- 33.3 Finding the convex hull
- 33.4 Finding the closest pair of points
- Problems
-
34 NP-Completeness
-
35 Approximation Algorithms
- 35.1 The vertex-cover problem
- 35.2 The traveling-salesman problems
- 35.3 The set-covering problem
- 35.4 Randomization and linear programming
- 35.5 The subset-sum problem
- Problem