The library

Pick a concept. Watch it think.

Every topic comes with an animated, interactive visualizer and a no-fluff breakdown of how it really works.

32 topics
{ } Linear live

Array

Contiguous memory, O(1) random access.

Core
{ } Linear live

Linked List

Nodes chained by pointers, O(1) splices.

Core
{ } Linear live

Doubly Linked List

Two-way pointers for O(1) backward traversal.

Intermediate
{ } Linear live

Stack

Last-In-First-Out. Push, pop, peek.

Core
{ } Linear live

Queue

First-In-First-Out. Enqueue, dequeue.

Core
{ } Associative live

Hash Table

Key → bucket via a hash function. O(1) average.

Core
{ } Tree live

Binary Search Tree

Left < node < right. Ordered O(log n) search.

Intermediate
{ } Tree live

Heap / Priority Queue

Complete binary tree; root is always min/max.

Intermediate
{ } Tree live

Trie (Prefix Tree)

Shared-prefix tree for fast string lookup.

Intermediate
{ } Graph live

Graph

Nodes and edges modeling any relationship.

Intermediate
{ } Graph live

Union-Find (DSU)

Near-constant merge & connectivity checks.

Advanced
ƒ(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) 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
Scaling live

Load Balancing

Spread traffic across servers, no single hotspot.

Core
Performance live

Caching

Keep hot data close to cut latency.

Intermediate
Scaling live

Database Sharding

Split one big database into many smaller ones.

Advanced
Scaling live

Consistent Hashing

Add or remove nodes without reshuffling everything.

Advanced
Reliability live

Message Queues

Decouple producers from consumers with a buffer.

Intermediate
Reliability live

Rate Limiting

Cap request rates to protect your service.

Intermediate