12 parts
Learn DSA from scratch: Big-O, arrays, hash maps, recursion, sorting, searching, linked lists, trees, and graphs — every algorithm runs live and animates in your browser.
What DSA really is, why 'it works' and 'it works at scale' are different problems, and how to reason about cost, with a live growth chart and runnable Python.
6 min read
Big-O is the language of growth: constant, linear, quadratic, log and linearithmic explained. Drop the constants, read any snippet's cost, with a live chart and Python.
How arrays use contiguous memory for O(1) indexing but O(n) search and insert, and why strings are immutable arrays of characters, with a live two-pointer scan and Python.
How hashing maps a key to a bucket for average O(1) lookups, what collisions and chaining are, and why order isn't guaranteed, with a live visualizer and runnable Python.
Two interview-favorite patterns that turn O(n²) brute force into O(n): two pointers and the sliding window, shown live and in runnable Python you can edit.
5 min read
How recursion actually works: base case vs recursive case, and how the call stack grows and unwinds, visualized step by step with runnable Python you can edit.
The three quadratic sorts explained: how bubble, selection, and insertion sort each work, why they're O(n²), with a live visualizer and runnable Python.
Divide and conquer sorting: merge sort's stable O(n log n) and quicksort's partitioning, average O(n log n) and worst O(n²), with a live visualizer and runnable Python.
Search a sorted array in O(log n) by halving it every step. Watch lo, mid, and hi close in on the target with an interactive visualizer and runnable Python.
Stacks (LIFO) and queues (FIFO) drive undo, the call stack, and task processing. See their core ops with interactive visualizers and runnable Python.
Linked lists chain nodes with next pointers for O(1) inserts but O(n) indexing. See the trade-offs vs arrays with an interactive visualizer and runnable Python.
Trees model hierarchies with roots, children, and leaves. Learn binary trees and the four traversals (in/pre/post-order and BFS) with visualizers and Python.