The library

Pick a concept. Watch it think.

Step-by-step procedures that transform inputs into answers.

18 topics
ƒ(x) Sorting live

Bubble Sort

Adjacent swaps bubble the largest to the end.

Core
ƒ(x) Sorting live

Selection Sort

Repeatedly pick the minimum, place it at the front.

Core
ƒ(x) Sorting live

Insertion Sort

Build a sorted region one card at a time.

Core
ƒ(x) Sorting live

Merge Sort

Divide in half, sort, merge. Guaranteed O(n log n).

Intermediate
ƒ(x) Sorting live

Quick Sort

Partition around a pivot, recurse on each side.

Intermediate
ƒ(x) Searching live

Linear Search

Check each element until you find the target.

Core
ƒ(x) Searching live

Binary Search

Halve the search space every step. O(log n).

Core
ƒ(x) Graph live

Breadth-First Search

Explore level by level with a queue.

Intermediate
ƒ(x) Graph live

Depth-First Search

Plunge down one path before backtracking.

Intermediate
ƒ(x) Graph live

Dijkstra's Shortest Path

Greedy shortest paths with a priority queue.

Advanced
ƒ(x) Graph live

Bellman-Ford

Shortest paths that tolerate negative edges.

Advanced
ƒ(x) Graph live

Prim's MST

Grow a minimum spanning tree one edge at a time.

Advanced
ƒ(x) Graph live

Union-Find (DSU)

Near-constant merge & connectivity checks.

Advanced
ƒ(x) Patterns live

Two Pointers

Two indices converging or chasing through data.

Intermediate
ƒ(x) Patterns live

Sliding Window

A moving range that grows and shrinks in O(n).

Intermediate
ƒ(x) Patterns live

Recursion & The Call Stack

Functions that call themselves, one frame at a time.

Intermediate
ƒ(x) Patterns live

Backtracking

Try, fail, undo, try again — search a decision tree.

Advanced
ƒ(x) Patterns live

Dynamic Programming

Solve once, remember, reuse. Overlapping subproblems.

Advanced