Big O Notation- Khan Academy Algorithm Complexity Guide

What the Heck Is Big O Notation?

Big O notation describes how an algorithm's runtime grows as the input size grows. That's it. Nothing fancy. You're measuring worst-case performance — how slow can this thing possibly get?

When Khan Academy covers this, they want you to understand one thing: as your data gets bigger, which algorithm will hold up? The answer lives in these complexity classes.

The Complexity Classes You Actually Need to Know

O(1) — Constant Time

Doesn't matter how much data you have. The operation takes the same time forever. Array index lookup? O(1). Hash table lookup? O(1). This is the gold standard.

O(log n) — Logarithmic Time

Every step eliminates half the data. Binary search is the textbook example. You start with 1,000 items, cut to 500, then 250, then 125. Fast. Really fast.

O(n) — Linear Time

Time grows directly with input size. A simple loop through an array. Double the data, double the time. Not bad. Not great. Just... linear.

O(n log n) — Linearithmic Time

This is what you get from efficient sorting algorithms like merge sort and quicksort (average case). Better than O(n²). Worse than O(n). The middle child of sorting.

O(n²) — Quadratic Time

Nested loops. Every element compares against every other element. Bubble sort, insertion sort. Works fine for 100 items. Absolute disaster for 10,000. Avoid when possible.

O(2^n) and O(n!) — Exponential and Factorial

These will destroy your program. The Fibonacci recursive solution runs in O(2^n). Try it with n=50 and go get coffee. Actually, don't. Just don't use these.

Big O Notation Comparison Table

Complexity Name Example 10 items 100 items
O(1) Constant Hash lookup 1 step 1 step
O(log n) Logarithmic Binary search ~3 steps ~7 steps
O(n) Linear Simple loop 10 steps 100 steps
O(n log n) Linearithmic Merge sort ~33 steps ~664 steps
O(n²) Quadratic Nested loops 100 steps 10,000 steps
O(2^n) Exponential Recursive Fibonacci 1,024 steps 1.27×10³⁰ steps

Drop the Constants — They're Noise

People get hung up on this. Big O doesn't care about the actual number of operations. O(2n) simplifies to O(n). O(500) simplifies to O(1).

Why? Because constants don't grow. When you're analyzing scalability, you're looking at what happens when n approaches infinity. A constant multiplier becomes irrelevant at that scale.

Space Complexity Matters Too

Runtime isn't the only concern. How much memory does your algorithm eat?

An in-place quicksort uses O(log n) extra space. Merge sort needs O(n) auxiliary space. For massive datasets, this difference kills you. Pick the algorithm that fits your hardware constraints, not just your time constraints.

How to Analyze Any Algorithm — The Real Process

Stop guessing. Here's the actual method:

Example: If your algorithm does O(n²) comparisons plus O(n) swaps, the result is O(n²). The linear term gets swallowed by the quadratic one.

Khan Academy's Approach — What They Get Right

Khan Academy breaks this down with visual examples and interactive exercises. Their sorting algorithm visualizations actually help you see why O(n²) algorithms crumble on large inputs. The videos walk through bubble sort step-by-step, then show merge sort destroying it.

What works:

What doesn't: The material moves fast. If you're completely new to this, you'll need to pause and rewind. A lot.

Getting Started: Your Action Plan

If you want to actually learn this instead of just memorizing it:

You'll learn more from 30 minutes of hands-on testing than from watching 3 hours of videos passively.

When Big O Actually Matters in Real Work

Most of the time, you're not writing sorting algorithms from scratch. But you will encounter:

Understanding Big O gives you the vocabulary to identify these problems and the intuition to fix them before they hit production.

The Bottom Line

Big O notation is a tool. A useful one. Khan Academy teaches it reasonably well, but you won't internalize it by watching alone. You need to write code, break things, and see the performance differences with your own eyes.

Start with O(1), O(n), and O(n²). Master those three. Then add O(log n) and O(n log n). The rest are edge cases you'll rarely encounter unless you're preparing for competitive programming interviews.