Big O isn't about "how fast is my code." It's about "how does my code's cost grow as the input grows."
Think of it like this:
📦 O(1) - Grabbing the first item in a box. Doesn't matter if the box has 10 or 10 million items.
📦 O(log n) - Finding a word in a dictionary by flipping to the middle, then the middle of that half, and so on. Doubling the dictionary size only adds one more flip.
📦 O(n) - Reading every page of a book once. Twice the pages, twice the time.
📦 O(n log n) - Sorting a deck of cards efficiently (merge sort). A bit worse than linear, way better than...
📦 O(n²) - Comparing every card in the deck to every other card. Double the deck, quadruple the work.
Here's the part interviewers actually care about: can you identify the complexity of code you didn't write, and can you explain why, not just state the label.
Quick check - what's the time complexity of this?
python
def mystery(arr):
for i in range(len(arr)):
for j in range(i, len(arr)):
print(arr[i], arr[j])
Drop your answer below 👇 (hint: it's not quite O(n²))