Data Structures16 min read
Big O Basics
Understand time complexity with simple intuition: why some code is fast and some becomes slow as data grows, plus a practical cheat sheet for Python structures.
David Miller
November 24, 2025
2.5k61
Big O tells you how time grows when your data grows.
You do not need heavy math here.
You only need this simple idea:
✅ If data becomes 10x larger, how much slower does your code get?
Common Big O types (in human words)
- O(1): constant time, stays fast
- O(log n): grows slowly
- O(n): grows linearly
- O(n log n): common in sorting
- O(n²): becomes slow quickly
Example: O(n) vs O(1)
O(n): search in a list
names = ["Tom", "Sarah", "Mike", "Ahsan"]
# worst case: it checks many items
print("Ahsan" in names)
O(1) average: search in a set
names = {"Tom", "Sarah", "Mike", "Ahsan"}
print("Ahsan" in names)
Why sets are faster for membership
A list checks one by one.
A set uses hashing to jump to the right place (average case).
Visual intuition
flowchart LR
A[List membership] --> B[Check item1]
B --> C[Check item2]
C --> D[Check item3...]
E[Set membership] --> F[Hash -> direct bucket]
Practical cheat sheet (Python built-ins)
- list append: usually fast
- list membership: slow for large lists
- dict get: fast average
- set membership: fast average
- sorting: n log n
Remember
- Big O helps you pick the right structure
- You don’t need math, focus on growth behavior
- Use set/dict for fast lookups
#Python#Beginner#Complexity