home
1
Getting Started (Review of C++)
1.1
I/O
1.2
I/O Formatting
1.3
I/O Formatting through
cstdio
1.4
Aliased Types
1.5
Global Functions
1.6
Classes
1.7
Suggested Problems
1.8
References
2
Data Structures (and STL)
2.1
Standard Template Library (STL) for C++
2.2
Templates
2.3
Stacks (Last-In-First-Out)
2.4
Queues (First-In-First-Out)
2.5
Priority Queues
2.6
Sets
2.7
Suggested Problems
2.8
References
3
Strings
3.1
Character Sets
3.2
Unicode Storage Encoding Forms
3.3
C++ String Library Functions
3.4
C Library String Functions
3.5
Suggested Problems
4
Sorting
4.1
A STL Algorithm
4.2
Suggested Problems
5
Arithmetic and Algebra
5.1
Arithmetic Operations
5.2
Random Numbers
5.3
Number Representations
5.4
Suggested Problems
6
Combinatorics
6.1
Counting Rules
6.2
Binomial Coefficients
6.3
Recurrence Numbers
6.4
Suggested Problems
7
Number Theory
7.1
Public Keys
7.2
Prime Numbers
7.3
Euclid’s Algorithm
7.4
Modular Arithmetic
7.5
Suggested Problems
8
Greedy Algorithms
8.1
Coin Change
8.2
Egyptian Fractions
8.3
Job Scheduling
8.4
0/1 Knapsack
8.5
Huffman Code
9
Backtracking
9.1
Background
9.2
The Queens Problem
9.3
Convex Hull
9.4
Generating Permutations
9.5
Demos
9.6
Suggested Problems
10
Graph Algorithms
10.1
Types of Graphs
10.2
Representations of Graphs
10.3
Breadth-First Traversal
10.4
Depth-First Traversal
10.5
Topological Sorting
10.6
Prim’s Minimal Spanning Tree Algorithm
10.7
Dijkstra’s Single-Source Shortest Path Algorithm
10.8
Kruskal’s Minimal Spanning Tree Algorithm
10.9
Union-Find Algorithm
10.10
Suggested Problems
11
Divide-and-Conquer Algorithms
11.1
Merge Sort
11.2
Quick Sort
11.3
Tiling with L-Grouped Tiles
11.4
Strassen’s Matrix Multiplication
12
Dynamic Programming
12.1
Fibonacci Numbers
12.2
Coin Change
12.3
Matrix Chain Multiplication
12.4
Longest Common Substring
12.5
Approximate String Matching (Edit Distance)
12.6
All Pairs Shortest Paths (Floyd-Warshall)
12.7
Suggested Problems
13
Grids
13.1
Rectilinear Grids
13.2
Dual Graphs
13.3
Triangular Grids
13.4
Hexagonal Grids
13.5
Topological Grids
13.6
Functionality
13.7
Scan Converting Lines
13.8
Scan Converting Circles
13.9
Scanline Fill Polygons
13.10
Suggested Problems
14
Geometry
14.1
Lines
14.2
Triangles
14.3
Trigonometric Functions
14.4
Circles
14.5
Suggested Problems
15
Computational Geometry
15.1
Turning Directions
15.2
Convex Hull: Divide and Conquer
15.3
Convex Hull: QuickHull
15.4
Closest Pair
15.5
Polygon Triangulation
15.6
Suggested Problems